在c#中执行SqlCommand.ExecuteNonQuery时如何获取数据库错误?

时间:2016-03-01 15:24:27

标签: c# sql sql-server sqlcommand

我有这些陈述:

SqlCommand sqlcmd = new SqlCommand("some query", "some db connection");
sqlcmd.ExecuteNonQuery();

执行此查询时,如何从数据库中获取消息?

例如,如果2行受到影响,我希望SQL Server消息显示:

 1 row(s) affected
 1 row(s) affected

在C#代码中。或者,例如,如果与主键发生冲突,我的意思是我试图插入存在主键的行,我希望收到数据库错误消息,其中显示:“主键重复”。

1 个答案:

答案 0 :(得分:6)

可能的解决方案之一:

int rowsAffected = 0;
bool HasErrors = false;
try
  {
     SqlCommand sqlcmd = new SqlCommand("some query", "some db connection");
        rowsAffected= sqlcmd.ExecuteNonQuery();
  }
  catch (System.Exception ex)
  {
     HasErrors=true;
     MessageBox.Show(ex.message)
  }

  if (!HasErrors)
  {
     MessageBox.Show(rowsAffected.ToString() + " row(s) affected.");
  }