C#、Winfrom添加数据时,防止点击多次按钮导致数据重复添加
有一个偷懒的方法,在保存按钮里面添加 button.Enable = false;
点击保存就让他失效;
下面是正常操作,在insert之前进行select查询一下有没有结果,没有就insert,有的话提示重复
1、打开链接
 SqlConnection conn = new SqlConnection(SQL);
 conn.Open();
2、查询语句
SqlCommand cmd1 = conn.CreateCommand();
cmd1.CommandText = "select * from basicMaterial where materialId = '" + id + "'";
3、验证数据是否存在
SqlDataReader dataReader= cmd1.ExecuteReader();
 if (dataReader.HasRows)
 {
  MessageBox.Show("已存在该记录,保存失败!");
 }
4、不存在执行添加操作
else
                {
                    dataReader.Close();
                    SqlCommand cmd = conn.CreateCommand();
                    cmd.CommandText = "insert into basicMaterial (pinName,materialId,materialName,materialSpecs) VALUES ('" + pinName + "','" + id + "','" + name + "','" + specs + "')";
                    int a = cmd.ExecuteNonQuery();
                    if (a > 0)
                    {
                        MessageBox.Show("保存成功!");
                    }
                    else
                    {
                        MessageBox.Show("保存失败!");
                    }
                }
                conn.Close();
附完整代码:
conn.Open();
                //在添加数据之前,先要验证数据是否存在,防止不小心多次点击添加按钮造成重复添加数据
                SqlCommand cmd1 = conn.CreateCommand();
                cmd1.CommandText = "select * from basicMaterial where materialId = '" + id + "'";
                SqlDataReader dataReader= cmd1.ExecuteReader();
                if (dataReader.HasRows)
                {
                    MessageBox.Show("已存在该记录,保存失败!");
                }
                else
                {
                    dataReader.Close();
                    SqlCommand cmd = conn.CreateCommand();
                    cmd.CommandText = "insert into basicMaterial (pinName,materialId,materialName,materialSpecs) VALUES ('" + pinName + "','" + id + "','" + name + "','" + specs + "')";
                    int a = cmd.ExecuteNonQuery();
                    if (a > 0)
                    {
                        MessageBox.Show("保存成功!");
                    }
                    else
                    {
                        MessageBox.Show("保存失败!");
                    }
                }
                conn.Close();
                    
                
                
            
        
浙公网安备 33010602011771号