SqlConnection.SqlInfoMessageEvent未触发

时间:2009-09-25 17:01:48

标签: asp.net sql

我一直在尝试调整我的代码(web服务)来获取SQLServerMessages:

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-String仍然是空的(应该返回至少1行。就像MS SQL Server MMS一样。)我显然缺少一些重要的东西。任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:1)

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

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

如果要捕获行计数,只需在相应的语句后添加类似的内容:

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

答案 1 :(得分:0)

InfoMessage仅捕获PRINT语句的输出。

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

答案 2 :(得分:0)

DataTable dTable = new DataTable(“C”); DataTable - >数据集