nvarchar मान ‘3391569654’ का रूपांतरण एक int कॉलम को ओवरफ्लो कर देता है। वक्ततव्य को समाप्त कर दिया गया है।

प्रोग्रामिंग


सी#
     protected void btnEdit_Click(object sender, EventArgs e)
        {
            try
            {   SqlConnection mysqlconection = new SqlConnection(myconect);
                SqlDataAdapter myadp = new SqlDataAdapter();
                myadp.UpdateCommand = new SqlCommand("Update [tbl_CustInfo] Set [mydate]=@mydate,[name]=@name,[idnasb]=@idnasb,[iddevice]=@iddevice,[email]=@email,[mobile]=@mobile,[tel]=@tel,[Adress]=@Adress WHERE [codemeli]=" + txtcodemeli.Text, mysqlconection);
                mydat = dryear.SelectedItem.Value.ToString() + "/" + drmonth.SelectedItem.Value.ToString() + "/" + drday.SelectedItem.Value.ToString();
                myadp.UpdateCommand.Parameters.Add("@mydate", SqlDbType.NVarChar, 15).Value = mydat;
                myadp.UpdateCommand.Parameters.Add("@name", SqlDbType.NVarChar, 100).Value = txtname.Text;
                myadp.UpdateCommand.Parameters.Add("@idnasb", SqlDbType.Int).Value = dridnasb.SelectedIndex;
                myadp.UpdateCommand.Parameters.Add("@iddevice", SqlDbType.Int).Value = drdevice.SelectedIndex;
                myadp.UpdateCommand.Parameters.Add("@email", SqlDbType.NVarChar, 50).Value = txtemail.Text.ToString();
                myadp.UpdateCommand.Parameters.Add("@mobile", SqlDbType.NVarChar, 11).Value = txtmobile.Text.ToString();
                myadp.UpdateCommand.Parameters.Add("@tel", SqlDbType.NVarChar, 11).Value = txttel.Text.ToString();
                myadp.UpdateCommand.Parameters.Add("@adress", SqlDbType.NVarChar, 250).Value = txtAdress.Text;
                myadp.UpdateCommand.Connection = mysqlconection;
                mysqlconection.Open();
                myadp.UpdateCommand.ExecuteNonQuery();
                mysqlconection.Close();                
            }
            catch (Exception ex)
            {
                errorLabel.Text = ex.Message;
                errorLabel.Visible = true;
            }
        }

What I have tried:

// when click edit Button i see above error message
// can you  tell me what is problem

समाधान 1

खैर… ऐसा इसलिए है क्योंकि एक int -2,147,483,648 से 2,147,483,647 की सीमा के साथ एक हस्ताक्षरित 32-बिट मान है। उस सीमा से बाहर के मानों को a में नहीं रखा जा सकता int.
एक अहस्ताक्षरित पूर्णांक का प्रयोग करें या uint (0 से 4,294,967,295), या ए में बदलने पर विचार करें long (-9,223,372,036,854,775,808 से 9,223,372,036,854,775,807)

और अपने आप पर एक उपकार करें: आप पैरामीटरयुक्त प्रश्नों और एसक्यूएल इंजेक्शन के बारे में स्पष्ट रूप से जानते हैं, तो स्ट्रिंग कॉन्सटेनेशन का भी उपयोग क्यों करें? यहां तक ​​कि आपके कोड में मौजूद एक उदाहरण भी आपके डेटाबेस को क्षतिग्रस्त या नष्ट होने के लिए खुला छोड़ देता है…

コメント

タイトルとURLをコピーしました