我正在尝试使用INSERT查询在数据库中保存一些数据,但它在单击时保存了双倍值。例如,我保存'拉合尔',它将保存两次:
拉合尔 拉合尔
SqlConnection conn = new SqlConnection("Data Source = HAMAAD-PC\\SQLEXPRESS ; Initial Catalog = BloodBank; Integrated Security = SSPI ");
try
{
conn.Open();
SqlCommand query = new SqlCommand("insert into City values('" + txtCity.Text + "')", conn);
query.ExecuteNonQuery();
SqlDataReader dt = query.ExecuteReader();
if (dt.Read())
{
MessageBox.Show("Saved....!");
}
else
{
MessageBox.Show("Not saved.....");
}
}
catch (Exception ex)
{
MessageBox.Show("Failed....." + ex.Message);
}
答案 0 :(得分:3)
您的代码完全按照您的说法进行操作。Execute*()
方法,它将运行您的查询两次。
答案 1 :(得分:2)
它正在保存两次,因为您执行了两次查询:
query.ExecuteNonQuery();
SqlDataReader dt = query.ExecuteReader();
答案 2 :(得分:0)
你要保存两次。
executeNonQuery将返回受影响的行数,因此请改用它。
SqlConnection conn = new SqlConnection("Data Source = HAMAAD-PC\\SQLEXPRESS ; Initial Catalog = BloodBank; Integrated Security = SSPI ");
try
{
conn.Open();
SqlCommand query = new SqlCommand("insert into City values('" + txtCity.Text + "')", conn);
var rowsAffected = query.ExecuteNonQuery();
if (rowsAffected == 1)
{
MessageBox.Show("Saved....!");
}
else
{
MessageBox.Show("Not saved.....");
}
}
catch (Exception ex)
{
MessageBox.Show("Failed....." + ex.Message);
}