我一直在尝试调整我的代码(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一样。)我显然缺少一些重要的东西。任何帮助表示赞赏!
答案 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 - >数据集