이 DataTable Select 쿼리를 Linq로 변환하려고합니다. 그 목적은 열 lookupValueField에서 값을 가져 오는 것입니다.단일 동적 쿼리를 사용하여 DataTable에서 링 쿼리
private object[] GetValueFromLookup(MultipleKeyConditionBuilder filter, string lookupValueField, DataTable datatableLookup)
{
object[] result;
DataRow[] rows = datatableLookup.Select(filter.Condition);
result = new object[rows.Count()];
for (int i = 0; i < rows.Count(); i++)
{
result[i] = rows[0][lookupValueField];
}
return result;
}
이것은 제가 작성한 Linq 쿼리입니다. 조건이 이미 필터에 정의되어 있습니다. 필터에 'Project_id = 10'값 유형이 있습니다. where 절에서이 필터를 어떻게 사용할 수 있습니까? 현재 오류가 발생하고 있습니다.
private object[] GetValueFromLookup(MultipleKeyConditionBuilder filter, string lookupValueField, DataTable datatableLookup)
{
object[] result;
EnumerableRowCollection<DataRow> rows;
//DataRow[] rows;
rows = from myRow in datatableLookup.AsEnumerable()
where filter.Condition
select myRow ;
result = new object[rows.Count()];
for (int i = 0; i < rows.Count(); i++)
{
result[i] = rows; // should give only lookupcolumn
//result[i] = rows[0][lookupValueField];
}
return result;
}
가 마지막으로 내가 할 행의 배열이 아닌 EnumerableRowCollection 발생 할 '암시 적으로 bool로하는 문자열을 변환 할 수 없습니다'. 위의 배열에있는 결과를 원한다. 어떤 도움이 LINQ의 조합과
Datatable.Select
방법을 사용
을 참조하시기 바랍니다 (HTTP [어떻게 LINQ 절에 문자열 변수를 사용] //stackoverflow.com/questions/31342172/how-to-use-a-string-variable-in-the-linq-where-clause). LINQ where 절에서 문자열을 사용할 수 없습니다. – sly
도움을 주셔서 감사합니다 –