begin try
begin transaction
select 1/0
commit transaction
end trybegin catch
rollback
raiserror ('ffff',16,1)end catch请问为什么我在c#端 无法捕获 raiserror 抛出的信息? 谢谢
begin transaction
select 1/0
commit transaction
end trybegin catch
rollback
raiserror ('ffff',16,1)end catch请问为什么我在c#端 无法捕获 raiserror 抛出的信息? 谢谢
create procedure sp_InfoMsgTest
@times int
as
begin
declare @msg NVARCHAR(100)
while(@times>0)
begin
set @msg = 'Error' + cast(@times as VARCHAR(5))
raiserror(@msg,16,1)
set @times =@times - 1
end
endprivate const string conString = "Server=SZSOFT-SZZB\\SQLEXPRESS;database=office;uid=sa;pwd=abc_!123456;";
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = conString;
con.FireInfoMessageEventOnUserErrors = true;
con.InfoMessage += new SqlInfoMessageEventHandler(con_InfoMessage);
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_InfoMsgTest";
cmd.Connection = con;
cmd.Parameters.Add(new SqlParameter("@times", 10));
cmd.ExecuteNonQuery();
}
void con_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
Console.WriteLine(e.Message);
}
begin transaction
select 1/0
commit transaction
end trybegin catch
raiserror ('ffff',16,1)
rollback
end catch