C# 我的代码中存在重复密钥的异常
我有一个表单,其中包含一个“添加”按钮和一个文本框,用于向数据库表添加信息 在插入文本框之前,我需要检查文本框中输入的代码是否可用 我的问题是,我得到了错误,因为它试图添加一个“重复的主键”,我不确定错误的来源 以下是我目前拥有的代码:C# 我的代码中存在重复密钥的异常,c#,sql-server,database,datagridview,textbox,C#,Sql Server,Database,Datagridview,Textbox,我有一个表单,其中包含一个“添加”按钮和一个文本框,用于向数据库表添加信息 在插入文本框之前,我需要检查文本框中输入的代码是否可用 我的问题是,我得到了错误,因为它试图添加一个“重复的主键”,我不确定错误的来源 以下是我目前拥有的代码: private void button2_Click(object sender, EventArgs e) { SqlConnection connection1 = new SqlConnection(connectionString); c
private void button2_Click(object sender, EventArgs e)
{
SqlConnection connection1 = new SqlConnection(connectionString);
connection1.Open();
String reqt1="select numero_cpte from compte where numero_cpte="+textBox1.Text+";";
SqlCommand sql1 = new SqlCommand(reqt1, connection1);
int d = int.Parse(textBox1.Text);
int dd = Convert.ToInt32(sql1.ExecuteScalar());
if(d == dd)
{
int o1 = sql1.ExecuteNonQuery();
MessageBox.Show("this account is not valide!!","Fiche ");
connection1.Close();
}
if (String.IsNullOrEmpty(textBox1.Text) == true)
{
MessageBox.Show("You should insert the code!!","Fiche",
MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
SqlCommand sql = new
SqlCommand("insert into compte values(" + textBox1.Text + ",'" +
textBox2.Text + "','" + type_cpteComboBox.SelectedItem.ToString() +
"','" + textBox2.Text + "','" + comboBox1.SelectedItem.ToString() +
"'," + comboBox2.SelectedItem.ToString() + ",'" +
checkBox1.Checked.ToString() + "','" + checkBox2.Checked.ToString() +
"','" +textBox5.Text+ "','" +textBox6.Text+ "');", connection);
int o = sql.ExecuteNonQuery();
MessageBox.Show(o + "Success of add","Fiche");
connection.Close();
textBox1.Text = "";
textBox2.Text = "";
}
这就是我看到的错误:
insert命令工作得很好,但是当我尝试测试我要添加到基中的代码是否存在时(通过键入我知道存在的代码),我得到了这个异常。即使您发现您的号码是重复的,您的代码看起来也会下降到添加代码中。关闭连接后,尝试添加“return;” MessageBox.Show(“Ce compte existe.Veuillez sasir un numéro de compte valide!!”,“Fiche Comptes”); 连接1.Close()
返回 即使您发现您的号码是重复的,您的代码似乎也会被放入“添加代码”中。关闭连接后,尝试添加“return;” MessageBox.Show(“Ce compte existe.Veuillez sasir un numéro de compte valide!!”,“Fiche Comptes”); 连接1.Close()
返回 即使您发现您的号码是重复的,您的代码似乎也会被放入“添加代码”中。关闭连接后,尝试添加“return;” MessageBox.Show(“Ce compte existe.Veuillez sasir un numéro de compte valide!!”,“Fiche Comptes”); 连接1.Close()
返回 即使您发现您的号码是重复的,您的代码似乎也会被放入“添加代码”中。关闭连接后,尝试添加“return;” MessageBox.Show(“Ce compte existe.Veuillez sasir un numéro de compte valide!!”,“Fiche Comptes”); 连接1.Close()
返回 这样做的好处是,您始终知道,当您完成连接时,您的连接将被关闭。即使只调用此方法一次,它也会提高可读性,因此非常有用 这样做的好处是,您始终知道,当您完成连接时,您的连接将被关闭。即使只调用此方法一次,它也会提高可读性,因此非常有用 这样做的好处是,您始终知道,当您完成连接时,您的连接将被关闭。即使只调用此方法一次,它也会提高可读性,因此非常有用
这样做的好处是,您始终知道,当您完成连接时,您的连接将被关闭。即使只调用此方法一次,它也会提高可读性,因此非常有用。您的代码编写和格式化非常糟糕。使用UI控件作为直接输入构建SQL命令是一个巨大的安全问题。如果用户在其中一个文本框中键入SQL命令段,该怎么办?此外,youre代码是用法语编写的,这使得不懂法语的人很难阅读。如果需要帮助,请更改它。ok xxbbcc我很抱歉我会翻译它:)Lina,翻译是问题的最小部分-您的示例显示了对SQL的多次调用,并且没有关于您声称来自特定SQL调用的错误的信息。请从示例中删除所有UI交互,并为公共代码使用良好的变量名。添加准确的错误文本并指向引发异常的行。确保向代码的公共版本添加正确的using。(对于您自己使用的版本,可以忽略上面的建议,但请确保提供好看的代码作为公共示例)。您的代码编写和格式都非常糟糕。使用UI控件作为直接输入构建SQL命令是一个巨大的安全问题。如果用户在其中一个文本框中键入SQL命令段,该怎么办?此外,youre代码是用法语编写的,这使得不懂法语的人很难阅读。如果需要帮助,请更改它。ok xxbbcc我很抱歉我会翻译它:)Lina,翻译是问题的最小部分-您的示例显示了对SQL的多次调用,并且没有关于您声称来自特定SQL调用的错误的信息。请从示例中删除所有UI交互,并为公共代码使用良好的变量名。添加准确的错误文本并指向引发异常的行。确保向代码的公共版本添加正确的using。(对于您自己使用的版本,可以忽略上面的建议,但请确保提供好看的代码作为公共示例)。您的代码编写和格式都非常糟糕。使用UI控件作为直接输入构建SQL命令是一个巨大的安全问题。如果用户在其中一个文本框中键入SQL命令段,该怎么办?此外,youre代码是用法语编写的,这使得不懂法语的人很难阅读。如果需要帮助,请更改它。ok xxbbcc我很抱歉我会翻译它:)Lina,翻译是问题的最小部分-您的示例显示了对SQL的多次调用,并且没有关于您声称来自特定SQL调用的错误的信息。请从示例中删除所有UI交互,并为公共代码使用良好的变量名。添加准确的错误文本并指向引发异常的行。确保向代码的公共版本添加正确的using。(对于您自己使用的版本,可以忽略上面的建议,但请确保提供好看的代码作为公共示例)。您的代码编写和格式都非常糟糕。使用UI控件作为直接输入构建SQL命令是一个巨大的安全问题。如果用户在其中一个文本框中键入SQL命令段,该怎么办?此外,youre代码是用法语编写的,这使得不懂法语的人很难阅读。如果需要帮助,请更改它。ok xxbbcc很抱歉我会翻译它:)Lina,翻译是问题的最小部分-您的示例显示了对SQL和th的多次调用
private object ExecuteScalar(string sql)
{
using (SqlConnection connection1 = new SqlConnection(connectionString))
{
connection1.Open();
SqlCommand sql1 = new SqlCommand(sql, connection1);
return sql1.ExecuteScalar();
}
}