SqlConnection.SqlInfoMessageEvent没有发射

SqlConnection.SqlInfoMessageEvent没有发射

问题描述:

我一直在努力去适应我的代码(web服务)来获得SQLServerMessages:SqlConnection.SqlInfoMessageEvent没有发射

SqlConnection c = new SqlConnection(ConfigurationManager.ConnectionStrings["db"].ConnectionString); 

//capture the infomessage event to capture 
c.InfoMessage += delegate(object sender, SqlInfoMessageEventArgs e) 
{ 
    serverMessages += e.Message; //"\n" + e.Message 
}; 

SqlDataAdapter dAdapter = new SqlDataAdapter(query, c); 
SqlCommandBuilder cBuilder = new SqlCommandBuilder(dAdapter); 

DataTable dTable = new DataTable("C"); 
dAdapter.Fill(dTable); 

不过,虽然dTable很好地满足了中,serverMessages字符串保持空白(这应该返回至少1行,就像MS SQL Server MMS一样)。我显然错过了一些重要的东西。任何帮助表示赞赏!

InfoMessage事件仅广播PRINT语句和低级错误(严重性为10或更低),而不是行计数消息。

要测试您的代码(看起来不错),请尝试在命令的文本或基础过程中添加PRINT语句。

如果你想捕捉的行数,只需添加像这样适当的声明(S)后:

PRINT '(' + cast(@@Rowcount as varchar(32)) + ' row(s) affected)' 

InfoMessage只能捕获报表打印输出。

可能有些TSQL代码会帮助我们。

DataTable dTable = new DataTable(“C”); DataTable - > DataSet

+0

更好,如果答案是描述性的。 – Nizam 2013-11-29 07:01:40