VB.net Windows应用程序根据多个唯一行值检索值

时间:2017-08-07 10:41:33

标签: sql vb.net

我正在使用VB.net Windows应用程序。我有一个具有唯一Employee ID的数据库表。如果用户在文本框中输入多个员工ID。我想显示查询结果,文本框输入(Ex 001,002,003)与IN查询连接,以将结果显示在gridview中。

示例:

从Employeees中选择* Employeeid IN(文本框值)

2 个答案:

答案 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()中的所有元素都需要被包围用单引号。再次更容易不依赖于您的用户知道这一点。