gpt4 book ai didi

c# - SqlParameter 和 IN 语句

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

<分区>

我需要以下查询:

createList(string commaSeparatedElements) {
...
SqlCommand query = new SqlCommand("SELECT * FROM table WHERE id IN ("+commaSeparatedElements+")");
...
}

我想使用参数化查询编写它,因此检查字符串中的每个元素以防止 Sql 注入(inject)。

伪代码:

createList(string commaSeparatedElements) {
...
SqlParameterList elements = new SqlParameterList("@elements", SqlDbType.Int);
SqlParameterList.Values = commaSeparatedElements.split(new Char[1] {','});
SqlCommand query = new SqlCommand("SELECT * FROM table WHERE id IN (@elements)");
query.Parameters.Add(elements);
...
}

C# 中是否存在类似的东西,还是我必须自己编写?

编辑:感谢您的所有回答。由于我尽量不使用我不理解的代码(最近几天有太多糟糕的经历),所以小巧玲珑和表值参数,即使它们可能非常适合我的需求,也是禁区。我刚刚做了一个循环。

string[] elements = commaSeparatedElements.split(new Char[1] {','});
StringList idParamList = new StringList();
for(int i=0;i<elements.Count;i++) {
query.Parameters.AddWithValue("@element"+i,Convert.ToInt32(elements[i]));
idParamList.Add("@element" + i);
}
SqlCommand query = new SqlCommand("SELECT * FROM table WHERE id IN ("+String.Join(",",idParamList)+")");

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