在插入SQL Server之前检查重复条目

时间:2018-01-28 17:25:43

标签: c# sql ado.net

我只想在SQL Server数据库中插入一些条目。但我需要在插入前检查。关键点是该表包含两列idname。如果条目与SQL Server数据库中的条目完全相同,则显示的代码应检查两列并阻止插入条目。

意味着两列数据表与要插入的两个条目相同。我检查了论坛,但找不到任何有用的解决方案。

private void button4_Click(object sender, EventArgs e)
{
      try
      {
           objConnection.Open();
           string query = "INSERT INTO TutorTable(Tid, Tname) VALUES(N'" + tidTextBox.Text + "','" + tnameTextBox.Text + "')";

           SqlDataAdapter SDA = new SqlDataAdapter(query, objConnection);

           SDA.SelectCommand.ExecuteNonQuery();

           objConnection.Close();
           MessageBox.Show("ok!");
       }
       catch(Exception ex)
       {
           MessageBox.Show("error");
       }

       objConnection.Close();      
}

1 个答案:

答案 0 :(得分:0)

This post解释了问题的解决方案。

基本上,您可以先使用以下方法检查特定行的存在:

IF NOT EXIST( SELECT 1 FROM TutorTable WHERE Tid = @tid)
BEGIN
    <your insert statement...>
END

(这也是使用参数而不是rene建议的直接值)

然后,您可以检查ExecuteNonQuery的返回值,以查看实际插入的行数。