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
更好,如果答案是描述性的。 – Nizam 2013-11-29 07:01:40