gpt4 book ai didi

c# - 如何防止数据库中打开2个连接?

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

我尝试了一些关于防止条目重复的好代码,但我收到了有关连接的错误。我怎样才能解决这个问题?这是我的代码。

        if(label1.Text == "" || label2.Text == "" || label3.Text == "") {
MessageBox.Show("Please Select Data");
} else {
String query = "Select * from Attendance where empIn=@empIn";
MySqlCommand cmd1 = new MySqlCommand(query, con);
cmd1.Parameters.AddWithValue("empIn", label2.Text);
MySqlDataReader dr = cmd1.ExecuteReader();
if (dr.HasRows) {
MessageBox.Show("This Person has already IN");
} else {
insert();
}
}
}

public void insert()
{
int i;
con.Open();
MySqlCommand cmd = new MySqlCommand("INSERT INTO Attendance (Name,Date,empIn)VALUES(@Name,@Date,@empIn)", con);
cmd.Parameters.Add("@Name", MySqlDbType.VarChar).Value = label3.Text;
cmd.Parameters.Add("@Date", MySqlDbType.Date).Value = Convert.ToDateTime(label1.Text);
cmd.Parameters.Add("@empIn", MySqlDbType.VarChar).Value = label3.Text;
i = cmd.ExecuteNonQuery();
if (i > 0) {
MessageBox.Show("Data Inserted");
label2.Text = "";
label3.Text = "";
label4.Text = "";

} else {
MessageBox.Show("Not Deleted");
}
con.Close();

最佳答案

您可以简单地使用“正在使用”状态,它将自动创建和关闭连接

public object getQueryScaller(string sqlQuery)
{
object value = null;

using (SqlConnection conn = new SqlConnection(_connectionString))
{
using (SqlCommand cmd = new SqlCommand(sqlQuery, conn))
{
conn.Open();
value = cmd.ExecuteScalar();
}
}
return value;
}

这将自动控制连接问题,您无需处理它。只需将参数作为 SQL 语句传递到函数中即可工作。

关于c# - 如何防止数据库中打开2个连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54218660/

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