大家好,大家好,我有一个问题..如何防止重复的插入数据到数据库。我的逻辑是他早上进屋,日期是2019年3月7日 他插入,当他尝试在2019年3月7日再次进入时,消息框将显示(“他已经进入”),并且当他在2019年3月8日时,如果现在进入,他可以再次简称为In,现在他可以进入另一个再次,我该如何解决这个问题?我在这里有一些代码
MySqlDataReader dr;
if (con != null && con.State == ConnectionState.Closed)
{
con.Open();
}
MySqlCommand cmd = new MySqlCommand("Select * from attendance1 where empID=@empID AND Name=@Name AND Date=@Date", con);
cmd.Parameters.Add("@empID", MySqlDbType.VarChar).Value = empID.ToString();
cmd.Parameters.Add("@Name", MySqlDbType.VarChar).Value = label6.Text;
cmd.Parameters.Add("@Date", MySqlDbType.Date).Value = Convert.ToDateTime(label4.Text);
dr = cmd.ExecuteReader();
if (dr.Read())
{
MessageBox.Show("You are already In");
}
else
{
MySqlCommand cmd1 = new MySqlCommand("INSERT INTO attendance1(empID,Name,Date,MorningIn)values(@empID,@Name,@Date,@MorningIn)", con);
cmd1.Parameters.Add("@empID", MySqlDbType.VarChar).Value = empID.ToString();
cmd1.Parameters.Add("@Name", MySqlDbType.VarChar).Value = label6.Text;
cmd1.Parameters.Add("@Date", MySqlDbType.Date).Value = Convert.ToDateTime(label4.Text);
cmd1.Parameters.Add("@MorningIn", MySqlDbType.VarChar).Value = label2.Text;
cmd1.ExecuteNonQuery();
MessageBox.Show("OK");
}
if (con != null && con.State == ConnectionState.Open)
{
con.Close();
}
由于连接断开而出错...我该怎么办?
答案 0 :(得分:0)
您在这里打开了两次连接
1)删除所有con.Open(); and con.Close()
2)在MySqlDataReader dr之后添加;
if (con != null && con.State == ConnectionState.Closed)
{
con.open();
}
3)最后在最后一个命令行中写
if (con != null && con.State == ConnectionState.Open)
{
con.close();
}