0

我试图在一个表中查询名称,然后使用该结果将主记录拉入 DataGridView。所以我需要做的是从兴趣表中获取类似于放入文本框中的名称,然后使用这些结果从 CaseSelector 表中提取数据并将绑定源过滤器设置为这些结果。为什么我似乎无法将结果设置为 caseSelectorBindingSourceFilter

             var results = from CaseSelector in db.CaseSelectors
                     from Interest in db.Interests
                     where SqlMethods.Like(Interest.First, txtFirst.Text) && SqlMethods.Like(Interest.Last, txtLast.Text)
                     select CaseSelector;

caseSelectorBindingSource.Filter = ("CaseNumberKey =" + results);  
4

2 回答 2

1

您可以在此处找到 LINQ 连接查询的示例:

http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b

我不知道您的数据库架构,但您正在寻找以下内容:

from c in db.Cases
join i in db.Interest on i.CaseNumberKey equals c.CaseNumberKey
select c
于 2013-07-01T22:26:08.723 回答
0

您刚刚检索到的是有效 caseNumberKeys 的 SQL 集。

您的 casefilter 应该类似于

caseSelectorBindingSource.Filter = "CaseNumberKey in " + interestsresultsAsSQLSET;

您必须遍历interestresults 并将其转换为SQLSET 的字符串表示形式。如果你觉得幸运,你可以尝试 .toString() 看看会发生什么。

string interestsResultsAsSQLSet = "(";
//write most of them
for(int i=0; i<interestsresults.size() - 1; i++) {
    interestsResultAsSQLSet.append(interestsresults[i] + ",");
//write the last one, with right paren
interestsresults.append(interestsresults[interestsresults.size() -1] + ")");

我整天写 Java,忽略我的基本语言错误。:P

于 2013-07-01T23:09:00.150 回答