使用SqlCommand执行非查询,您是否可以获得通常发布到"Messages"的文本?

Tom*_*tak 15 .net sql sql-server

使用SqlCommand执行非查询(例如数据库还原)时,是否可以以编程方式获取通常在使用Management Studio时发布到"消息"选项卡的文本?如果是这样怎么样?

mar*_*c_s 24

是的,SqlCommand对象上有一个名为SqlInfoMessage的事件挂钩,您可以将其挂钩到:

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

_con.InfoMessage += new SqlInfoMessageEventHandler(_con_InfoMessage);
Run Code Online (Sandbox Code Playgroud)

事件处理程序将如下所示:

static void _con_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
    string myMsg = e.Message;            
}
Run Code Online (Sandbox Code Playgroud)

"e.Message"是打印到SQL Server Mgmt Studio中的消息窗口的消息.

  • +1:Thsi太棒了.使用ADO.NET这么多年后,这是第一次遇到这个...... (2认同)