c# - 如何在 C# 中接收 SQL 消息?

标签 c# sql-server sql-server-2008

我想在 C# 中显示这些 SQL 消息

image

我的 C# 代码:

SqlCommand cmd = new SqlCommand();
cmd = con.CreateCommand();
string ab = "";
con.FireInfoMessageEventOnUserErrors = true;
con.InfoMessage += delegate(object obj, SqlInfoMessageEventArgs err)
{
   ab = "\n " + err.Message;
   message_richTextBox.Text += (ab);
};
cmd.CommandText = @"execute my_sp ";
cmd.ExecuteNonQuery();
con.FireInfoMessageEventOnUserErrors = false;

问题:
我的问题是,我没有像 C# 中的 SQL Server 2008(附图)那样获得所有 SQL 消息

最佳答案

其中一些不是“消息”(即 TDS ERRROR and INFO Messages ),而是行计数。 SSMS 以与信息消息类似的方式在输出中显示它们,但它们不相关。

您可以在 SqlClient 中将它们作为 DML 查询的返回值获取。换句话说, ExecuteNonQuery 返回的 int :

For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command.

正确的消息,例如“删除先前的签核”,您已经知道如何获取它们:SqlConnection.InfoMessage事件,就像在您的代码中一样。

关于c# - 如何在 C# 中接收 SQL 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28167851/

相关文章:

sql-server - 处理 SQL 中字符串内的 IS NULL

c# - 使用静态类使 UI 元素可从 .NET 中的所有类访问是一种好习惯吗?

c# - 从 Process.Start 返回的不同引用

mysql - mysql 数据库可以有外键引用另一个数据库服务器中的表吗

sql - 每个项目选择 X 个随机用户

sql - 为什么 SQL Server 2008 Management Studio 没有选项 "Open table"

c# - 如何点击没有 ID 或名称的链接?

c# - ffmpeg.exe 卡住

sql - 如何在sql server中水平旋转表

SQL 查询日期 = 今天减去 7 天