我正在制作一个ASP.net网络应用程序,该应用程序允许用户将值粘贴到多行文本框中并按下提交按钮。 点击按钮,这将根据他们输入文本框的产品代码运行数据库查询。
我已经设法在文本框中为一个代码工作了。但是,我正在努力做的是在文本框中允许多个产品代码。 如何在文本框中拆分值,以逗号分隔并在我的ACCESS SQL查询中使用?
以下代码是我在文本框中用于单行的代码,它可以正常工作。
string selectString = "SELECT Patt1, Description, Oversize FROM Item WHERE Patt1 = '" + TextBox1.Text + "'";
基本上,我想要做的是使用相同类型的查询,但如下所示:
string selectString = "SELECT Patt1, Description, Oversize FROM Item WHERE Patt1 sInStatement";
其中sInStatement将是" IN(1234,1235,1236,1237)**这里的代码可以在TextBox1中找到,我需要用逗号等分隔出来。
可以这样做吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以修改SQL:
string selectString = "SELECT Patt1, Description, Oversize FROM Item WHERE Patt1 IN ("' + string.Join("','", TextBox1.Text.Replace(" ", "").Split(',')) + "')";
如果值是数字:
string selectString = "SELECT Patt1, Description, Oversize FROM Item WHERE Patt1 IN (" + string.Join(",", TextBox1.Text.Split(',')) + ")";
//or simply:
string selectString = "SELECT Patt1, Description, Oversize FROM Item WHERE Patt1 IN (" + TextBox1.Text + ")";
答案 2 :(得分:0)
考虑一个存储过程,其参数与您希望能够传递的可选参数一样多。对可选参数使用超出范围的默认值,例如-999
。
以下SQL DDL需要ANSI-92查询模式:
CREATE PROCEDURE GetItemsByPatt1s
( :arg1 INT,
:arg2 INT = -999,
:arg3 INT = -999,
:arg4 INT = -999 ) AS
SELECT Patt1, Description, Oversize
FROM Item
WHERE Patt1 IN ( :arg1, :arg2, :arg3, :arg4 );