如何知道SqlException错误号?

时间:2012-05-14 13:02:26

标签: .net ado.net

我遇到SqlException问题。在我的c#代码中,当我尝试在数据库中插入数据时,我得到下一个错误:无法在对象错误号中插入重复键 我在Sql Server中做了一个约束。但是我需要知道这个异常的错误代码吗?我应该做什么?

       try{
      connect c = new connection();
      DataTable d = c.query("INSERT INTO User (code, name, surname) VALUES ('"+code+"',           '"+name+"', '"+surname+"')");
      }
      catch(SqlException e)
      {
     if(e.Number == ???)
      {
       MessageBox.Show("Sorry, you can't add duplicate data");
       }

}

2 个答案:

答案 0 :(得分:1)

一个简单的解决方案是错误号上的switch

switch (exc.Errors[0].Number){
    case 17:
    case 4060:
    case 18456:
    case 547:
        break;
}

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlexception.number.aspx

答案 1 :(得分:-1)

尝试启动程序以查看您获得的错误编号:

try
{
    connect c = new connection();
    DataTable d = c.query("INSERT INTO User (code, name, surname) VALUES ('"+code+"',           '"+name+"', '"+surname+"')");
}
catch(SqlException e)
{
    MessageBox.Show(e.Number.ToString());
}