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