Linq to SQL JOIN?
本文关键字:JOIN SQL to Linq | 更新日期: 2023-09-27 18:20:33
我试图查询一个表中的名称,然后使用该结果将主记录拉入DataGridView。因此,我需要做的是从兴趣表中获取与放入文本框中的名称类似的名称,然后使用这些结果从CaseSelector表中提取数据,并为这些结果设置bindingsource过滤器。为什么我似乎不能将结果设置为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);
您可以在这里找到LINQ联接查询的示例:
http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
我不知道你的DB模式,但你正在寻找一些类似的东西
from c in db.Cases
join i in db.Interest on i.CaseNumberKey equals c.CaseNumberKey
select c
您刚刚检索到的是一个有效caseNumberKeys的SQL集。
你的案例过滤器应该是类似的东西
caseSelectorBindingSource.Filter = "CaseNumberKey in " + interestsresultsAsSQLSET;
您必须对兴趣结果进行迭代,并将其转换为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