.net 使用SqlCommand执行一个非查询,您是否可以获得通常发布到";的文本;消息;?

.net 使用SqlCommand执行一个非查询,您是否可以获得通常发布到";的文本;消息;?,.net,sql,sql-server,.net,Sql,Sql Server,使用SqlCommand执行非查询(如数据库还原)时,是否可以通过编程方式获取文本,如果使用Management Studio,这些文本通常会发布到“消息”选项卡?如果是这样,怎么办?是的,在SqlCommand对象上有一个名为SqlInfoMessage的事件挂钩,您可以将其挂钩到: SqlConnection _con = new SqlConnection("server=.;database=Northwindintegrated Security=SSPI;"); _con.Info

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

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

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

_con.InfoMessage += new SqlInfoMessageEventHandler(_con_InfoMessage);
事件处理程序如下所示:

static void _con_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
    string myMsg = e.Message;            
}
“e.Message”是打印到SQLServerMgmtStudio中消息窗口的消息


马克:太棒了。在使用ADO.NET这么多年后,这是第一次遇到这个…:-)很高兴你喜欢它。总的来说,网络是如此巨大——每个人都在不断地学习和掌握新的技巧:-)