小编典典

EntityDataSource VB.NET中的where子句

sql

我的网页上有一个绑定到gridview的entitydatasource。

在后面的代码中,我可以使用entitydatasource的WHERE语句过滤并向网格视图显示所需的内容。我的where语句之一使用大的OR语句进行过滤,但是逻辑上比较多的IN语句不起作用。

例如,我有雇员1-9,并且我想选择雇员1、4和7。在SQL中,我可以通过以下两种方式:

1。

SELECT * FROM table WHERE EmployeeID = 1 OR EmployeeID = 4 OR EmployeeID = 7

2。

SELECT * FROM table WHERE EmployeeID IN (1,4,7)

这两个语句在SQL中对我来说都很好

使用EF时,只有选项1才能选择这些特定员工。为了创建此语句,我有一个for循环,该循环创建一个whereString,最终看起来像这样:

whereString = "it.EmployeeID = 1 OR it.EmployeeID = 4 OR it.EmployeeID = 7"
EntityDataSource.Where = whereString

如果我将whereString设置为此

whereString = "it.EmployeeID IN (1,4,7)"

这没用。为什么这个模仿SQL代码中使用的格式的where子句不起作用?


阅读 150

收藏
2021-04-14

共1个答案

小编典典

EntityDataSource的“ IN子句”。需要大括号而不是括号:

whereString = "it.EmployeeID IN {1,4,7}"
2021-04-14