我正在使用VB.net Windows应用程序。我有一个具有唯一Employee ID的数据库表。如果用户在文本框中输入多个员工ID。我想显示查询结果,文本框输入(Ex 001,002,003)与IN查询连接,以将结果显示在gridview中。
示例:
从Employeees中选择* Employeeid IN(文本框值)
答案 0 :(得分:0)
如果文本框中的值以逗号分隔,并且字段在表格中为数字,则可以直接使用文本框中的值。
sql = "Select * from Employees where Employeeid IN("+ textbox.text +")"
如果用户提示添加逗号分隔,则可以使用替换功能
sql = "Select * from Employees where Employeeid IN( "+ textbox.text.Replace(" ",",") +")"
如果您的EmployeeId列不是数字,则必须使用单引号,并在文本框中输入每个值。即In('121','123','124')
答案 1 :(得分:0)
请不要做你正在做的事。它非常容易受到SQL注入攻击。如果你不知道这是什么,请谷歌吧。如果有人进入你的TextBox" 1,2),会发生什么?从员工中删除1英寸(1,2"?
如果你必须允许多次选择,那么最好通过例如使用SelectionMode MultiExtended显示所有可能值的ListBox。然后,您可以控制将选项安排到安全的SQL命令中以发送到数据库。
修改
作为次要点,如果您的员工ID为001,002,003等形式,则它们是某种形式的字符串/ varchar / text,在这种情况下,IN()中的所有元素都需要被包围用单引号。再次更容易不依赖于您的用户知道这一点。