gpt4 book ai didi

c# - 将sql命令写入文本文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:51 24 4
gpt4 key购买 nike

我想将 sql 命令写入带有参数值的文本文件。以下是我用适当的值替换参数的代码。

string commandText = commandInfo.CommandText;

if (commandInfo.Parameters.Count > 0)
{
foreach (SqlParameter parameter in commandInfo.Parameters)
{
commandText=commandText.Replace(parameter.ParameterName,parameter.Value==(object)DBNull.Value?(object)DBNull.Value:("'"+parameter.Value.ToString()+"'"));
}
}

问题是尽管所有其他参数值都被正确替换了。那些具有空值的值被视为空白,即'parameter1',,'param2'

两者之间是最终字符串中的空值参数。

有什么替代方案?

最佳答案

坦率地说,用值替换参数是(IMO)错误的做法;我们在 mini-profiler 中做什么是在输出的顶部欺骗 declare 语句,这样您就可以将其复制并粘贴到 SSMS 中,而无需担心什么是参数以及什么是原始 TSQL 中的硬编码。例如,看一眼这个页面的 mini-profiler 输出,我看到了

DECLARE @id int = 18121022,
@type tinyint = 10;

(然后是很多对我们来说非常具体的 tsql)

您可以浏览一下 mini-profiler 代码,看看我们是如何输出的,但基本上它只涉及遍历参数,编写一个简单的declare。如果您使用的是 ASP.NET 之类的东西,mini-profiler 还可以避免编写文件的需要(而不是让您的开发人员在网站上实时使用它)。

关于c# - 将sql命令写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18121022/

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