如何防止从C#program

时间:2016-02-14 06:00:38

标签: c# sql

这是我们的代码,用于防止将相同的数据从我们的C#程序添加到SQL中,但只会添加第一个相同的数据。剩下的数据会将相同的数据添加到SQL中,尽管我们在C#程序中已经预防了。有人可以帮我们排除故障吗?

Our C# code

3 个答案:

答案 0 :(得分:1)

为了不在数据库中复制数据,通常会为数据库设置一些约束。通过在数据库中具有唯一字段,可以防止对数据库进行多次添加。

目前,您还从db中获取数据以检查它是否已存在并且会产生额外成本,只需操作db的设计,以便它不会接受相同的列输入两次

答案 1 :(得分:0)

计算插入的数据的值

string constr = ConfigurationManager.ConnectionStrings["connstr"].ToString();
        SqlConnection con = new SqlConnection(constr);
        string sql1 = "SELECT COUNT (client_id) FROM client WHERE client_id = '" + txtid.Text + "' ";
        SqlCommand cmd = new SqlCommand(sql1, con);
        con.Open();
        int temp = Convert.ToInt32(cmd.ExecuteScalar().ToString());
       if (temp >0)
        {
//show error message
        }

答案 2 :(得分:0)

您可以检查要添加的记录,如果它不存在,则将其添加到表中:

SqlConnection _cnt = new SqlConnection();
_cnt.ConnectionString = "Your Connection String";
SqlCommand _cmd = new SqlCommand();
_cmd.Connection = _cnt;
_cmd.CommandType = System.Data.CommandType.Text;
_cmd.CommandText = "SELECT id FROM myTable where Category=@Name";

_cmd.Parameters.Add("@Name", string);
_cmd.Parameters["@Name"].Value = newCatTitle;
_cnt.Open();
var idTemp = _cmd.ExecuteScalar();

_cmd.Dispose();
_cnt.Close();
_cnt.Dispose();
if (idTemp == null)
{
  //Insert into table
}
else
{
  //Message it already exists
}