Sql 参数计数决定or条件的动态select语句
我有一个带有multiselect的列表框,它提供了多个值Sql 参数计数决定or条件的动态select语句,sql,vb.net,dynamic-programming,Sql,Vb.net,Dynamic Programming,我有一个带有multiselect的列表框,它提供了多个值 select Amount from tblEmployeeTransactions _ where PayrollCode_Code = '" & code & "' " 我的listboxdata如下所示 For Each drv As CListItem In lstnoncash.SelectedItems code =drv.ItemData Next 我想要的查
select Amount from tblEmployeeTransactions _
where PayrollCode_Code = '" & code & "' "
我的listboxdata如下所示
For Each drv As CListItem In lstnoncash.SelectedItems
code =drv.ItemData
Next
我想要的查询应该是
select sum(Amount) from tblEmployeeTransactions _
where PayrollCode_Code = '1' or PayrollCode_Code ='2' or PayrollCode_Code ='3'"
如果它有3行数据您可能需要这样的内容:
Dim a As String() = {"1", "2", "3"}
Dim query = "select sum(Amount) from tblEmployeeTransactions " _
& "where PayrollCode_Code IN "
'here inStatement will contain : ('1', '2', '3')'
Dim inStatement = "('" & String.Join("', '", a) & "')"
Console.WriteLine(query & inStatement)
您是
PayrollCode\u code
数字的吗?如果是,那么您不需要为此添加单一报价。我更喜欢在语句中使用,而不是使用multiple或
运算符
Dim sCode As String
For Each drv As CListItem In lstnoncash.SelectedItems
sCode &= drv.ItemData & ","
Next
IF sCode.Length > 0 THEN
sCode = sCode.Substring(0,sCode.Length-1);
Dim _SQL As String = "Select SUM(Amount) FROM tblEmployeeTransactions " &
"WHERE PayrollCode_Code IN (" & sCode & ")"
''Execute ur _SQL
END IF
您希望将列表扩展到
语句中的。旁注:查看参数化查询。在SQL语句中使用串联字符串值(如“&code&”
)是非常糟糕的做法。这可能导致SQL注入和数据丢失。一个简单的谷歌搜索将为您提供关于这两个方面的大量信息。@这不是我的问题,这些值来自我的数据库中的列表框,因此这里不存在注入问题。@GordonLinoff你是什么意思?很抱歉没有了解您如何解决我的问题?如“扩展列表如何”中所述?您的回答太简短了?我不知道在哪里扩展列表列表