gpt4 book ai didi

c# - 如何防止重复插入我出勤日期的数据

转载 作者:行者123 更新时间:2023-11-29 16:13:36 25 4
gpt4 key购买 nike

大家好晚上好,我有一个问题..如何防止向数据库重复插入数据。我的逻辑是他早上来的时候,日期是 2019 年 3 月 7 日他插入,当他在 2019 年 3 月 7 日再次尝试输入时,消息框将显示(“他已经输入”),并且当他在 2019 年 3 月 8 日输入时,他可以再次输入,简而言之,如果他现在输入,他可以在另一个输入中输入又一天,我该如何解决这个问题,我这里有一些代码

 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();
}

他出错是因为连接已打开...我可以采取什么策略?

最佳答案

您在这里打开连接两次,

1) 删除所有con.Open();和 con.Close()

2)在MySqlDataReader dr之后添加;

if (con != null && con.State == ConnectionState.Closed)
{
con.open();
}

3)最后在最后一行命令行写入

 if (con != null && con.State == ConnectionState.Open)
{
con.close();
}

关于c# - 如何防止重复插入我出勤日期的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55041162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com