是否可以在 C#/ ASP.NET 中了解ExecuteNonQuery
是否插入了记录?
我正在检查以确保使用子查询在表中不存在电子邮件地址。
有没有办法知道是否在ASP.NET中进行了插入?
CommandPrizeEmails.Parameters.Add("@Email", SqlDbType.VarChar, 50);
CommandPrizeEmails.Parameters.Add("@DateToday", SqlDbType.DateTime);
CommandPrizeEmails.Parameters["@Email"].Value = txtEmail.Text;
CommandPrizeEmails.Parameters["@DateToday"].Value = DateTime.Now;
CommandPrizeEmails.ExecuteNonQuery();
//int newID = (int)CommandPrizeEmails.ExecuteScalar();
//CommandPrizeEmails.ExecuteNonQuery();
//if (newID >= 1) {
// divSuccesfulEntry.Visible = true;
//} else {
// divRepeatEntry.Visible = true;
//}
答案 0 :(得分:1)
您可以获取受影响的行以验证该过程。
对于UPDATE,INSERT和DELETE语句,返回值为 受命令影响的行数。
当插入或更新的表上存在触发器时,返回 value包括插入或者受影响的行数
更新操作和数量受触发器或触发器影响的行。对于所有其他类型的 语句,返回值为-1。如果发生回滚,则返回 值也是-1。
答案 1 :(得分:1)
ExecuteNonQuery返回布尔值捕获值
例如:
bool flg;
flg=cmd.ExecuteNonQuery();
if (flg)
{ msgbox("successfully inserted");}
else {msgbox("not inserted");}
答案 2 :(得分:-1)
bool flg;
flg=cmd.ExecuteNonQuery();
if (flg)
{ MessageBox.Show("successfully inserted");
}
else
{
MessageBox.Show("not inserted");
}
这会产生错误:
无法将类型'int'隐式转换为'bool'