2

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;
//}
4

3 回答 3

1

您可以让受影响的行作为回报来验证该过程。

对于 UPDATE、INSERT 和 DELETE 语句,返回值是受命令影响的行数。

当正在插入或更新的表上存在触发器时,返回值包括受插入或更新操作影响的行数以及

受一个或多个触发器影响的行。对于所有其他类型的语句,返回值为 -1。如果发生回滚,则返回值也是 -1。

http://blogs.msdn.com/b/spike/archive/2009/01/27/sqlcommand-executenonquery-returns-1-when-doing-insert-update-delete.aspx

于 2013-08-28T13:18:26.543 回答
1

ExecuteNonQuery 返回布尔值 捕获值

前任:

bool flg;

flg=cmd.ExecuteNonQuery(); 
if (flg)
{ msgbox("successfully inserted");}
else {msgbox("not inserted");}
于 2013-08-28T16:23:56.250 回答
-1
bool flg;

flg=cmd.ExecuteNonQuery(); 
if (flg)
{ MessageBox.Show("successfully inserted");
}
else 
{
MessageBox.Show("not inserted");
}

这给出了一个错误:

不能将类型“int”隐式转换为“bool”

于 2014-01-09T04:51:03.350 回答