知道是否只是通过C#4.0插入了一条记录?

时间:2013-08-28 13:13:49

标签: asp.net c#-4.0 executenonquery

是否可以在 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;
//}

3 个答案:

答案 0 :(得分:1)

您可以获取受影响的行以验证该过程。

  

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

     

当插入或更新的表上存在触发器时,返回   value包括插入或者受影响的行数   

更新操作和数量      

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

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

答案 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'