Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL 2005签入.NET时出错_.net_Sql_Sql Server_Sql Server 2005_Exception Handling - Fatal编程技术网

使用SQL 2005签入.NET时出错

使用SQL 2005签入.NET时出错,.net,sql,sql-server,sql-server-2005,exception-handling,.net,Sql,Sql Server,Sql Server 2005,Exception Handling,我是否可以在SQL 2005 server上引发异常,以便使用SqlCommand.ExecuteQuery()在C#代码中捕获它?SQL server上发生的错误会作为异常冒泡到您的.NET代码中。要进行测试,请执行一个将返回错误(如语法错误或愚蠢的错误)的查询,并在调试器中观察异常情况。使用。严重性为1..10的错误将是触发事件的信息性消息。严重级别为16的错误将转换为附加到的对象,当您执行任何SqlCommand方法(、、及其异步完成对应方法)时,SqlClient将抛出该对象 不要对RA

我是否可以在SQL 2005 server上引发异常,以便使用SqlCommand.ExecuteQuery()在C#代码中捕获它?

SQL server上发生的错误会作为异常冒泡到您的.NET代码中。要进行测试,请执行一个将返回错误(如语法错误或愚蠢的错误)的查询,并在调试器中观察异常情况。

使用。严重性为1..10的错误将是触发事件的信息性消息。严重级别为16的错误将转换为附加到的对象,当您执行任何SqlCommand方法(、、及其异步完成对应方法)时,SqlClient将抛出该对象


不要对RAISERROR使用除1..10和16之外的其他严重性。

是的,我一直都这样做。比如说,

SELECT @SurveyCode = (SELECT Value FROM Setting WHERE [Key] = @PubCode)

IF @SurveyCode IS NULL
BEGIN
    RAISERROR ('No survey code for the specified PubCode (%s ) in Setting table.', 16, 1, @PubCode)
    RETURN
END

System.Data.SqlClient.SqlException was unhandled
  Class=16
  ErrorCode=-2146232060
  LineNumber=15
  Message="No survey code for the specified PubCode ((null) ) in Setting table."
  Number=50000
  Procedure="GetSetting"
  Server="(local)"
  Source=".Net SqlClient Data Provider"
  State=1
  StackTrace:
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
       at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
       ....