【发布时间】:2012-07-04 15:21:06
【问题描述】:
我在我的数据库的表中创建了一个包含一些列名的下拉列表。当用户选择列名时,我想在查询中添加 where 子句以使用此过滤器。
我想做的是:
Dim objQuery = (From wc In _dbBellen.dealer_telefonies Order By wc.Bedrijfsnaam Select wc)
'if dropdown has value...
objQuery = objQuery.Where(Function(wc) wc.DynamicColumnName < txtFilterValue1.Text)
wc.DynamicColumnName 必须替换为例如 wc.Price。
--
经过一些回复,我现在尝试的代码是:
Dim objQuery = (From wc In _dbBellen.dealer_telefonies Order By wc.Bedrijfsnaam Select wc)
If ddlFilterColumn1.SelectedValue <> "" And ddlFilterOperator1.SelectedValue <> "" And txtFilterValue1.Text <> "" Then
Select Case ddlFilterOperator1.SelectedValue
Case "..%"
objQuery = objQuery.Where(Function(wc) wc.WHMCSClient_id Like txtFilterValue1.Text & "%")
Case "%.."
objQuery = objQuery.Where(Function(wc) wc.WHMCSClient_id Like "%" & txtFilterValue1.Text)
Case Else '< > = <>
'objQuery = objQuery.Where(Function(wc) wc.WHMCSClient_id < txtFilterValue1.Text)
'objQuery = objQuery.Where(Function(wc) "wc." + ddlFilterColumn1.SelectedValue.ToString + " < " + txtFilterValue1.Text)
objQuery = objQuery.Where(Function(wc) "wc.WHMCSClient_id < 500")
End Select
End If
Response.Write(objQuery.ToString())
但我收到以下错误(原始错误是荷兰语,但说明如下): 字符串 wc.WHMCSClient_id
【问题讨论】:
-
希望有人能给你一个更好的例子,但你可能想要How to use expression trees to build dynamic queries
标签: sql vb.net linq where-clause