gpt4 book ai didi

c# - SQL 服务器 : parameter not evaluating in AND part of clause

转载 作者:太空宇宙 更新时间:2023-11-03 21:27:33 25 4
gpt4 key购买 nike

以下带参数的 SQL 查询有效:

select A from B where C = @param1;

C#:

command.Parameters.AddWithValue("@param1", "TEXT");

注意:C是字符串类型的列

以下带参数的 SQL 查询不起作用:

select A from B where C = @param1 and D in (@param2);

C#:

command.Parameters.AddWithValue("@param1", "123,234,456");

注意:Dint类型的列

最佳答案

因为你不能像那样参数化in;您目前正在请求一个 in 的单个值,而该值恰好是一个包含逗号的字符串 - 也就是说,这仅在 D 相等的行中有效到 123,234,456

您需要或者有一个每个值的参数,即

... and D in (@param2, @param3, @param4)

或使用可以为您完成此操作的工具。例如,使用“dapper”:

string c = "TEXT"; 
int[] vals = { 123, 234, 456 };
var data = conn.Query<AType>("select A from B where C = @c and D in @vals",
new { c, vals }).ToList();

关于c# - SQL 服务器 : parameter not evaluating in AND part of clause,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26098265/

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