Author 및 Bookname 두 열이있는 DataTable이 있습니다.
주어진 문자열 값 Author가 이미 DataTable 에 있는지 확인하고 싶습니다 . 배열과 같이 그것을 확인하는 내장 방법이 array.contains
있습니까?
답변
다음 LINQ-to-DataSet
과 함께 사용할 수 있습니다 Enumerable.Any
.
String author = "John Grisham";
bool contains = tbl.AsEnumerable().Any(row => author == row.Field<String>("Author"));
또 다른 접근 방식은 다음을 사용하는 것입니다 DataTable.Select
.
DataRow[] foundAuthors = tbl.Select("Author = '" + searchAuthor + "'");
if(foundAuthors.Length != 0)
{
// do something...
}
Q : Headers 열을 모르고
PEPSI
rows’c 열에 셀 값 이 있는지 확인하려면 어떻게해야합니까? 모든 것을 반복하여 알아낼 수 있지만 더 좋은 방법이 있습니까? –
예, 다음 쿼리를 사용할 수 있습니다.
DataColumn[] columns = tbl.Columns.Cast<DataColumn>().ToArray();
bool anyFieldContainsPepsi = tbl.AsEnumerable()
.Any(row => columns.Any(col => row[col].ToString() == "PEPSI"));
답변
Linq를 사용할 수 있습니다. 다음과 같은 것 :
bool exists = dt.AsEnumerable().Where(c => c.Field<string>("Author").Equals("your lookup value")).Count() > 0;
답변
DataRow rw = table.AsEnumerable().FirstOrDefault(tt => tt.Field<string>("Author") == "Name");
if (rw != null)
{
// row exists
}
using 절에 추가하십시오.
using System.Linq;
다음을 추가하십시오.
System.Data.DataSetExtensions
참조.
답변
DataTable.Select () 메서드 를 사용할 수 있어야합니다 . 이렇게 할 수 있습니다.
if(myDataTable.Select("Author = '" + AuthorName.Replace("'","''") + '").Length > 0)
...
Select () 함수는 where 문과 일치하는 결과에 대한 DataRows 배열을 반환합니다.
답변
데이터베이스를 IEnumberable로 설정하고 linq를 사용하여 값이 있는지 확인할 수 있습니다. 이 링크를 확인하십시오
레코드가 있는지 확인하기위한 Datatable의 LINQ 쿼리
주어진 예는
var dataRowQuery= myDataTable.AsEnumerable().Where(row => ...
당신은 어떤 곳으로 보충 할 수 있습니다