이 문제를 해결하는 데 어려움을 겪고 있습니다. C#, asp.net에서 동적 linq 쿼리를 작성하는 코드가 필요합니다. 같은 데이터베이스 테이블에서 다른 열을 검색하고 항목을 필터링 한 값을 단일 목록 상자로 반환하는 5 개의 드롭 다운 목록이 있습니다. 문제는 DDL에서 어느 하나 또는 모두가 선택되지만 조합 된 필터링 결과가 목록 상자에 나타나야한다는 시퀀스가 없다는 것입니다. 각 DDL 선택을 한 번에 한 열씩 검색하고 결과를 반환하는 작업 쿼리가 있습니다. AND를 사용하여 where 절을 추가해야이 쿼리에 다른 DDL 선택 항목을 동적으로 추가해야합니다. 덕분에LinQ 쿼리 - 동적으로 추가 위치
다음
public ListItemCollection searchProject(ListItemCollection projList, String searchstr, String columnName)
{
DataSet DSToReturn = new DataSet();
ListItemCollection returnItems = new ListItemCollection();
DataTable results = (from d in ((DataSet)_MyDataset).Tables["Records"].AsEnumerable()
orderby d.Field<string>("Name") ascending
where (d.Field<string>(columnName) != null)
where d[columnName].ToString().ToLower().Contains(searchstr.ToLower())
select d).CopyToDataTable();
foreach (ListItem li in projList)
{
if ((from System.Data.DataRow row in results.Rows
where li.Value.Equals(row["value"].ToString(), StringComparison.InvariantCultureIgnoreCase)
select row["value"]).Count() > 0)
returnItems.Add(li);
}
return returnItems;
}
중복 http://stackoverflow.com/questions/848415/linq-dynamic-where-clause –
어떻게이 쿼리를 동적으로 만들어 각 DDL 선택 항목을 추가 할 수 있습니까?이 코드로 도와주세요. DataTable의 결과 = (((데이터 세트) _MyDataset) .Tables [ "기록"]에서의 D. AsEnumerable() d.Field ("이름") ORDERBY 오름차순 곳 (d.Field (COLUMNNAME)! = NULL) 여기서 d [columnName] .ToString(). ToLower(). 포함 (searchstr.ToLower()) 선택 d) .CopyToDataTable(); –
menon
[Linq2SQL "또는/및"연산자 (ANDed/ORed 조건)] 가능한 중복 (http://stackoverflow.com/questions/1450983/linq2sql-or-and-operators-anded-ored-conditions) –