gpt4 book ai didi

c# - 如何通过 Dapper 传播 SQL 消息选项卡输出

转载 作者:行者123 更新时间:2023-12-03 21:27:49 25 4
gpt4 key购买 nike

有谁知道如何让“消息”选项卡输出通过 Dapper 传播到我的 C# 代码,以便我可以在某处显示它?

目前,我知道如何获取受影响的行数和异常,但除此之外知之甚少。

public static void ExecuteSqlCommand(string connectionString, string sql)
{
using (var db = new SqlConnection(connectionString))
{
var count = db.Execute(sql, null, null, 240);
Console.WriteLine(count); //can get count of rows affected but not rest of output from Messages Tab in SSMS.
}
}

我已尝试运行 SQL Server Profiler 以查看消息是否显示在那里,但也没有看到任何内容。通过在 SQL Server Management Studio 中运行我的 SQL 脚本,我知道确实创建了一条消息,但它似乎不会去任何地方。

我已经调查了 db.InfoMessage 但没有得到它的工作并且我变得有点时间紧迫。

例如,当我运行需要更正的创建表脚本时,我收到一条消息“警告!最大键长度为 900 字节。索引‘UQ_UniqueMachineInfo’的最大长度为 2428 字节。对于一些大值的组合,插入/更新操作将失败。”我需要通过代码来展示。

最佳答案

您没有将事件处理程序连接到连接上的 InfoMessage 事件。

public static void ExecuteSqlCommand(string connectionString, string sql)
{
using (var db = new SqlConnection(connectionString))
{
db.InfoMessage += new SqlInfoMessageEventHandler(db_InfoMessage);
var count = db.Execute(sql, null, null, 240);
Console.WriteLine(count); //can get count of rows affected but not rest of output from Messages Tab in SSMS.
}
}

void db_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
// handle here and look at e.Message
}

关于c# - 如何通过 Dapper 传播 SQL 消息选项卡输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42711109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com