gpt4 book ai didi

c# - 如何在 .NET 中将列表作为参数传递

转载 作者:可可西里 更新时间:2023-11-01 07:38:12 26 4
gpt4 key购买 nike

我有一个基本上像这样的查询:

SELECT foo
FROM bar
where bar.Id in (1,2,3);

我想将 Id 的列表作为单个参数传递给 IDbDataParameter,其中格式化了查询:

SELECT foo
FROM bar
where bar.Id in (?ListOfID);

然后有一个参数是一个列表而不是必须做这样的事情:

SELECT foo
FROM bar
where bar.Id in (?id1, ?id2, ?id3);

我知道这在其他数据提供者中是可能的,我可以使用标准的 System.Data 类来做到这一点吗?

附言我希望它作为单个列表参数而不是一系列参数的原因是因为随着参数数量的变化,MySQL 会将查询视为新查询,并且我们会放弃一些缓存优化。 MySQl 基本上以每个 ID 的一个查询结束。这与我不想将基本 SQl 作为字符串进行操作的原因相同,因为那样我最终会为每个 VAULE 查询一个,这会更糟。

最佳答案

是否可以使用:

string[] myParamaters = new string[2];
myParameters[0] = "id1"
myParameters[1] = "id2"

在创建一个数组并按照你想要的方式填充它之后:

SELECT foo
FROM bar
where bar.Id in (string.Join(", ", myParameters));

我不完全确定这是否是您要问的,但我认为这是我从您的帖子中了解到的。

关于c# - 如何在 .NET 中将列表作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1455831/

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