gpt4 book ai didi

c# - 如何在一条语句中向SQL命令添加多个参数?

转载 作者:太空狗 更新时间:2023-10-29 18:13:15 25 4
gpt4 key购买 nike

我有六行这样的参数:

    cmd.Parameters.AddWithValue("@variable1", myvalue1);
cmd.Parameters.AddWithValue("@variable2", myvalue2);
cmd.Parameters.AddWithValue("@variable3", myvalue3);

等等。

有没有什么方法可以在不直接插入 cmd.CommandText 的情况下稍微压缩一下?

编辑:我想我本可以使用一个很好的老式数组。尽管如此,我还是决定坚持下去。

最佳答案

据我所知,您的代码在行数方面是最紧凑的,但是您可以使用 List<SqlParameter>使用对象初始值设定项语法只有一行以分号终止以构建您的参数列表,然后将该列表作为 AddRange 方法所需的参数数组传递

 List<SqlParameter> prm = new List<SqlParameter>()
{
new SqlParameter("@variable1", SqlDbType.Int) {Value = myValue1},
new SqlParameter("@variable2", SqlDbType.NVarChar) {Value = myValue2},
new SqlParameter("@variable3", SqlDbType.DateTime) {Value = myValue3},
};
cmd.Parameters.AddRange(prm.ToArray());

请注意,使用这种方法您需要正确定义参数的数据类型。在我的示例中,我使用了一些任意类型来显示正确的语法

有点跑题了,我认为在这种一般情况下指出 AddWithValue 很有趣当您想获得最佳性能时,不应该考虑。

MSDN 上的这篇文章 How data access code affects database perfomance很好地解释了为什么应该避免 AddWithValue出于性能原因的方法。
简而言之,使用 AddWithValue Sql Server Optimizer 可能是个问题因为字符串类型的参数传递的大小等于字符串的当前长度。但这将强制 Sql Server Optimizer丢弃为之前相同的调用创建的查询计划,但字符串长度不同。
最好调用指定参数类型和大小的 SqlParameter 构造函数,不要担心如何 compress the size的电话。

关于c# - 如何在一条语句中向SQL命令添加多个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24918239/

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