Click here to Skip to main content
15,892,809 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
See more:
ERROR CONVERTING DATA TYPE NVARCHAR TO NUMERIC C#

UPDATE BUTTON BELOW MY CODE

What I have tried:

<pre>private void editbtn_Click(object sender, EventArgs e)
        //update coding.....
        {

            try
            {
                if (editbtn.Text == "EDIT")
                {
                    editbtn.Text = "Update";
                    addbtn.Text = "Cancle";
                }
                else if (editbtn.Text == "Update")
                {
                   if (checkBlank() == false)
                    {
                        if (con.State == ConnectionState.Open)
                        {
                            con.Close();
                        }
                        con.Open();
                        cmd = new SqlCommand("UPDATE FOLIOMST SET ACCD=@ACCD,GRCD =@GRCD,NAME_E=@NAME_E,NAME_M=@NAME_M,F_NAME=@F_NAME,NOMINEE1=@NOMINEE1,NOMINEE2=@NOMINEE2,ADD1=@ADD1,ADD2=@ADD2,ADD3=@ADD3,PIN1=@PIN1,SHARE_ALLO=@SHARE_ALLO,NO_OF_SH=@NO_OF_SH,VALUE_P_SH=@VALUE_P_SH,CERTNO_F=@CERTNO_F,SRNO=@SRNO,DIST_NO_F=@DIST_NO_F,DIST_NO_E=@DIST_NO_E,CATEGORY1=@CATEGORY1,CATEGORY2=@CATEGORY2,TOTAL_AMT=@TOTAL_AMT,ALLDT=@ALLDT,SH_ISSUED=@SH_ISSUED,TYPE_SH=@TYPE_SH,VLCD=@VLCD,BLCD=@BLCD,FNLCERTNO=@FNLCERTNO,HOLDSHNO=@HOLDSHNO,DT=@DT,PACCD=@PACCD,PIN2=@PIN2,DOB=@DOB,AGE=@AGE,AADHARNO=@AADHARNO,MOBNO=@MOBNO,PANNO=@PANNO,EMAILID=@EMAILID,BANK_ACNO=@BANK_ACNO,NOM1_REL=@NOM1_REL,NOM1_AGE=@NOM1_AGE,NOM1_ADHARNO=@NOM1_ADHARNO,NOM1_PANNO=@NOM1_PANNO,NOM2_REL=@NOM2_REL,NOM2_AGE=@NOM2_AGE,NOM2_AADHARNO=@NOM2_AADHARNO,NOM2_PANNO=@NOM2_PANNO,NOM1_MOBNO=@NOM1_MOBNO,NOM2_MOBNO=@NOM2_MOBNO,DMAT_CLIENT_ID=@DMAT_CLIENT_ID,DMAT_CLIENT_NAME=@DMAT_CLIENT_NAME WHERE FOLIO_NO = @FOLIO_NO ", con);
                        cmd.Parameters.AddWithValue("@FOLIO_NO", txtfoliono.Text);
                        cmd.Parameters.AddWithValue("@ACCD", txtaccd.Text);
                        cmd.Parameters.AddWithValue("@GRCD", txtgrcd.Text);
                        cmd.Parameters.AddWithValue("@NAME_E", txtnamee.Text);
                        cmd.Parameters.AddWithValue("@NAME_M", txtDmat_Client_Name.Text);
                        cmd.Parameters.AddWithValue("@F_NAME", txtfname.Text);
                        cmd.Parameters.AddWithValue("@JT_NAME", txtjtname.Text);
                        cmd.Parameters.AddWithValue("@NOMINEE1", txtnominee1.Text);
                        cmd.Parameters.AddWithValue("@NOMINEE2", txtnominee2.Text);
                        cmd.Parameters.AddWithValue("@ADD1", txtadd1.Text);
                        cmd.Parameters.AddWithValue("@ADD2", txtadd2.Text);
                        cmd.Parameters.AddWithValue("@ADD3", txtadd3.Text);
                        cmd.Parameters.AddWithValue("@PIN1",Convert.ToInt32(txtPin1.Text));
                        cmd.Parameters.AddWithValue("@SHARE_ALLO", txtshareallo.Text);
                        cmd.Parameters.AddWithValue("@NO_OF_SH", txtnoofsh.Text);
                        cmd.Parameters.AddWithValue("@VALUE_P_SH", txtvaluepsh.Text);
                        cmd.Parameters.AddWithValue("@CERTNO_F", txtcertnof.Text);
                        cmd.Parameters.AddWithValue("@SRNO", txtsrno.Text);
                        cmd.Parameters.AddWithValue("@DIST_NO_F", txtdistnof.Text);
                        cmd.Parameters.AddWithValue("@DIST_NO_E", txtdistnoe.Text);
                        cmd.Parameters.AddWithValue("@CATEGORY1", txtcategory1.Text);
                        cmd.Parameters.AddWithValue("@CATEGORY2", txtcategory2.Text);
                        cmd.Parameters.AddWithValue("@TOTAL_AMT", txttotalamt.Text);
                        cmd.Parameters.AddWithValue("@ALLDT", dtpAllotmentDate.Value.Date);
                        cmd.Parameters.AddWithValue("@SH_ISSUED", txtshissued.Text);
                        cmd.Parameters.AddWithValue("@TYPE_SH", txttypesh.Text);
                        cmd.Parameters.AddWithValue("@VLCD", cmbvillege.SelectedValue);
                        cmd.Parameters.AddWithValue("@BLCD", cmbblockno.SelectedValue);
                        cmd.Parameters.AddWithValue("@FNLCERTNO", txtfnlcertno.Text);
                        cmd.Parameters.AddWithValue("@HOLDSHNO", txtholdshno.Text);
                        cmd.Parameters.AddWithValue("@DT", txtDT.Text);
                        cmd.Parameters.AddWithValue("@PACCD", txtpaccd.Text);
                        cmd.Parameters.AddWithValue("@PIN2", txtPin2.Text);
                        cmd.Parameters.AddWithValue("@DOB", dtpDOB.Value.Date);
                        cmd.Parameters.AddWithValue("@AGE", txtAge.Text);
                        cmd.Parameters.AddWithValue("@AADHARNO", txtAdharNo.Text);
                        cmd.Parameters.AddWithValue("@MOBNO", txtMobileNo.Text);
                        cmd.Parameters.AddWithValue("@PANNO", txtPanNo.Text);
                        cmd.Parameters.AddWithValue("@EMAILID", txtEmailId.Text);
                        //cmd.Parameters.AddWithValue("@BNK_ID", cmbbankmst.SelectedValue);
                        //cmd.Parameters.AddWithValue("@IFSC_CODE", txtIfscCode.Text);
                        cmd.Parameters.AddWithValue("@BANK_ACNO", txtBankAcno.Text);
                        cmd.Parameters.AddWithValue("@NOM1_REL", txtNom1Rel.Text);
                        cmd.Parameters.AddWithValue("@NOM1_AGE", txtNom1Age.Text);
                        cmd.Parameters.AddWithValue("@NOM1_ADHARNO", txtNom1Adhar.Text);
                        cmd.Parameters.AddWithValue("@NOM1_PANNO", txtNom1Pan.Text);
                        cmd.Parameters.AddWithValue("@NOM2_REL", txtNom2Rel.Text);
                        cmd.Parameters.AddWithValue("@NOM2_AGE", txtNom2Age.Text);
                        cmd.Parameters.AddWithValue("@NOM2_AADHARNO", txtNom2Adhar.Text);
                        cmd.Parameters.AddWithValue("@NOM2_PANNO", txtNom2Pan.Text);
                        cmd.Parameters.AddWithValue("@NOM1_MOBNO", txtNom1_MobNo.Text);
                        cmd.Parameters.AddWithValue("@NOM2_MOBNO", txtNom2_MobNo.Text);
                        cmd.Parameters.AddWithValue("@DMAT_CLIENT_ID", txtDmat_Client_ID.Text);
                        cmd.Parameters.AddWithValue("@DMAT_CLIENT_NAME", txtDmat_Client_Name.Text);
                      
                        cmd.ExecuteNonQuery();
                        con.Close();
                        MessageBox.Show("Record Updated Successfully");
                        DisplayData();
                        editbtn.Text = "EDIT";
                        addbtn.Text = "ADD";
                    }
                    else
                    {
                        MessageBox.Show("Please Select Record to Update");
                   }
                }
                else if (editbtn.Text == "Cancle")
                {
                    ClearData();
                    addbtn.Text = "ADD";
                    editbtn.Text = "EDIT";
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Posted
Updated 6-Apr-21 19:53pm

1 solution

Simple. One of your text boxes contains data that is going into a numeric column in your DB, but what the user entered is not a number.

There is no solution to that, except validation. At the top of the method, check and convert each user entered "Numeric" value to the appropriate C# datatype:
C#
int intVal;
if (!int.TryParse(integerTextBox.Text, out intVal))
   {
   ... report problem to user ...
   return;
   }

C#
double doubleVal;
if (!double.TryParse(doubleTextBox.Text, out doubleVal))
   {
   ... report problem to user ...
   return;
   }
Then pass the converted values as parameters to SQL:
C#
cmd.Parameters.AddWithValue("@INTEGERCOLUMN", intVal);
cmd.Parameters.AddWithValue("@DOUBLECOLUMN", doubleVal);
 
Share this answer
 
Comments
Maciej Los 7-Apr-21 3:10am    
5ed!

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900