當我在SQL Server Management Studio中執行以下語句與SqlDataReader.ExecuteReader也不例外,而SQL Server返回converstion錯誤
EXEC sp_executesql的N'select 1,其中1 = @ P1' ,N'@ P1爲nvarchar(3 ) '@ P1 = N'a'
去
我得到下面的錯誤
消息245,級別16,狀態1,行1
轉換˚F在將nvarchar值'a'轉換爲數據類型int時變成了ailed。
但是當我使用的ExecuteReader,我沒有得到任何異常
爲什麼?
我怎樣才能獲得和應用程序處理此錯誤作爲例外
進口System.Data.SqlClient的
模塊模塊1
Sub Main()
Dim TestSqlConnection As SqlConnection = Nothing
Dim TestSqlCommand As SqlCommand = Nothing
Dim TestReader As SqlDataReader = Nothing
Dim TestGetSchemaTable As DataTable = Nothing
TestSqlConnection = New SqlConnection
TestSqlConnection.ConnectionString = "Data Source=(local);Database=master;Integrated Security=true"
TestSqlConnection.Open()
TestSqlCommand = New SqlCommand()
TestSqlCommand.Connection = TestSqlConnection
TestSqlCommand.CommandType = CommandType.Text
TestSqlCommand.CommandText = "select 1 where 1 = @p1"
Dim TestSqlParameter As SqlParameter = New SqlParameter
TestSqlParameter.ParameterName = "@p1"
TestSqlParameter.SqlDbType = SqlDbType.NVarChar
TestSqlParameter.Size = 3
TestSqlParameter.Direction = ParameterDirection.Input
TestSqlParameter.Value = "a"
TestSqlCommand.Parameters.Add(TestSqlParameter)
Try
TestReader = TestSqlCommand.ExecuteReader()
Catch ex As Exception
Console.WriteLine("Exception")
Finally
Console.WriteLine("Finally")
End Try
End Sub
前端模塊
Blam,也許這取決於錯誤發生的位置,在解析或執行期間。奇怪的錯誤報告,那是經驗豐富的開發人員所在! – datadev