Чтобы получить номер ошибки () из хранимой процедуры в calling.NET применение
Привет как лучше всего передать Error_Number()
из хранимой процедуры В вызывающее приложение .NET?
SELECT
.
Примечание: я использую считыватель данных.
Заранее благодарю.
2 ответа:
Вы можете попытаться сделать это - поймать ваш
Error_number()
в блоке SQLtry/catch
, а затем вызвать ошибку, которую вы можете поймать в своем приложении .NET какSqlException
.В вашей хранимой процедуре SQL:
BEGIN TRY -- do something here.... END TRY BEGIN CATCH DECLARE @ErrorNumber INT SELECT @ErrorNumber = ERROR_NUMBER() RAISERROR (N'The error code is: %d', 16, -- Severity. 1, -- State. @ErrorNumber, -- First substitution argument. ''); -- Second substitution argument. END CATCH;
И в вашем коде .NET (здесь: C#):
// call your stored proc some way... using(SqlConnection conn = new SqlConnection("server=.;database=Test;Integrated Security=SSPI;")) using (SqlCommand cmd = new SqlCommand("dbo.YourStoredProcNameHere", conn)) { cmd.CommandType = CommandType.StoredProcedure; // possibly add parameters to the stored procedure call.... try { conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } catch (SqlException ex) { // catch SqlException - ex.ErrorNumber contains your error number string msg = string.Format("Error number: {0} / Message: {1}", ex.Number, ex.Message); } }