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