我的代码成功执行并且它也更新了数据库中的表,但仍然会返回我失败的指定错误。
这是我的代码:
private void button2_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox2.Text) && !string.IsNullOrEmpty(textBox3.Text) && !string.IsNullOrEmpty(textBox4.Text) && !string.IsNullOrEmpty(comboBox1.Text) && !string.IsNullOrEmpty(comboBox2.Text))
{
if (textBox3.Text == textBox4.Text)
{
SqlConnection con = new SqlConnection(@"Data Source=DESKTOP-TAACMGJ\SQLEXPRESS;Initial Catalog=libman;Integrated Security=True");
SqlCommand cmd = new SqlCommand("UPDATE logdat set pass=@pass WHERE uname=@uname AND sec_que=@sec_que AND sec_ans=@sec_ans AND type=@type", con);
cmd.Parameters.AddWithValue("@uname", textBox1.Text);
cmd.Parameters.AddWithValue("@sec_ans", textBox2.Text);
cmd.Parameters.AddWithValue("@pass", textBox3.Text);
cmd.Parameters.AddWithValue("@sec_que", comboBox1.Text);
cmd.Parameters.AddWithValue("@type", comboBox2.Text);
SqlDataAdapter da = new SqlDataAdapter(cmd);
try
{
DataTable dt = new DataTable();
con.Open();
da.Fill(dt);
cmd.ExecuteNonQuery();
con.Close();
if (dt.Rows.Count > 0)
{
MessageBox.Show("Password Reset Successfull!!");
this.Close();
}
else
{
MessageBox.Show("Password Reset Failed!! Re-Enter Details.");
reset();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
else
{
MessageBox.Show("Password Confirmation Failed!!");
textBox3.Text = "";
textBox4.Text = "";
}
}
else
{
MessageBox.Show("Please Fill All The Details!!");
}
}
答案 0 :(得分:2)
ExecuteNonQuery
不会返回任何数据
var count = cmd.ExecuteNonQuery();
if (count > 0) MessageBox.Show("Password Reset Successfull!!");
对于UPDATE,INSERT和DELETE语句,返回值为 受命令影响的行数。当a上存在触发器时 正在插入或更新的表,返回值包括数字 受插入或更新操作影响的行数和数字 受触发器或触发器影响的行数。对于所有其他类型的 语句,返回值为-1。如果发生回滚,则返回 值也是-1。