防止此Insert命令中的重复

时间:2012-10-08 02:39:31

标签: c# validation compare

private void Save_Click(object sender, EventArgs e)
{
    if (idTextBox.Text != "" & nameTextBox.Text != "")
    {
        conn.Open();
        cmd.CommandText = "insert into item_details (id, Name, MFD, EXP, QTY, damaged, MP, CP) values ('" + idTextBox.Text + "','" + nameTextBox.Text + "','" + MFDTextBox.Text + "','" + EXPTextBox.Text + "','" + QTYTextBox.Text + "','" + damagedTextBox.Text + "','" + MPTextBox.Text + "','" + CPTextBox.Text + "')";
        cmd.ExecuteNonQuery();
        cmd.Clone();
        MessageBox.Show("record inserted");
        conn.Close();
    }
    Admin_welcome newChild = new Admin_welcome();
    newChild.MdiParent = MdiParent;
    newChild.Show();
    this.Hide();
}

1 个答案:

答案 0 :(得分:2)

我想在这里说几句话,

首先,您需要设置一个考虑记录重复的标准 - 即重复名称或重复名称和MFD,到期等。完成后,您首先必须使用匹配条件进行选择查询,如果你找到一个匹配的记录,你将插入一个副本,所以你不应该插入它并显示错误。

其次,您的代码很容易被SQL注入。我建议您使用存储过程和sql参数来确保代码是安全的。您还可以在存储过程本身中嵌入检查重复项的过程。