通过 ADO.NET 访问 SQL Server 消息

2022-01-23 00:00:00 sql-server ado.net

Is it possible to access the SQL Server "by-product messages" via ADO.NET? Due to the lack of words, by "by-product messages" I mean the output which appears in the Messages tab in Microsoft SQL Server Management Studio. What I particularly have it mind is to read the output of SET STATISTICS TIME ON. It appears that SqlDataReader does not offer anything in this matter.

解决方案

Yes, there's an event on the SqlConnection class called SqlInfoMessage, which you can hook into:

SqlConnection _con = 
   new SqlConnection("server=.;database=Northwind;integrated Security=SSPI;");

_con.InfoMessage += new SqlInfoMessageEventHandler(InfoMessageHandler);

The event handler will look like this:

static void InfoMessageHandler(object sender, SqlInfoMessageEventArgs e)
{
    string myMsg = e.Message;            
}

The e.Message is the message printed out to the message window in SQL Server Management Studio.

相关文章