gpt4 book ai didi

c# - 从 SqlCommand 对象发送什么 SQL

转载 作者:行者123 更新时间:2023-11-30 18:50:15 25 4
gpt4 key购买 nike

我在基于 c# 的 asp.net 页面上有一个 SqlCommand 对象。 SQL 和传递的参数大部分时间都在工作。我有一个案例不工作,我收到以下错误:

字符串或二进制数据将被截断。声明已终止。

我理解错误,但数据库中的所有列都应该足够长以容纳所有发送的内容。

我的问题,

有没有办法从 SqlCommand 对象中查看发送到数据库的实际 SQL 是什么?我希望能够在发生错误时通过电子邮件发送 SQL。

谢谢,贾斯汀

最佳答案

虽然您无法将它插入诸如 Enterprise Manager 之类的东西来运行,但它可以用于日志记录。

public static string ToReadableString(this IDbCommand command)
{
StringBuilder builder = new StringBuilder();
if (command.CommandType == CommandType.StoredProcedure)
builder.AppendLine("Stored procedure: " + command.CommandText);
else
builder.AppendLine("Sql command: " + command.CommandText);
if (command.Parameters.Count > 0)
builder.AppendLine("With the following parameters.");
foreach (IDataParameter param in command.Parameters)
{
builder.AppendFormat(
" Paramater {0}: {1}",
param.ParameterName,
(param.Value == null ?
"NULL" : param.Value.ToString())).AppendLine();
}
return builder.ToString();
}

关于c# - 从 SqlCommand 对象发送什么 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2611446/

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