我有兩列DataTable 作者和書名。檢查dataTable中是否存在值?
我想檢查給定的字符串值作者已經存在於DataTable中。有沒有一些內置的方法來檢查它,比如數組array.contains
?
我有兩列DataTable 作者和書名。檢查dataTable中是否存在值?
我想檢查給定的字符串值作者已經存在於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...
}
問:如果我們不知道是什麼的列標題和我們想找到如有 單元格的值
PEPSI
任何rows'c列是否存在?我可以循環一切到 找出來,但有沒有更好的方法? -
是的,你可以使用這個查詢:
DataColumn[] columns = tbl.Columns.Cast<DataColumn>().ToArray();
bool anyFieldContainsPepsi = tbl.AsEnumerable()
.Any(row => columns.Any(col => row[col].ToString() == "PEPSI"));
添加這些'System.Data.DataSetExtensions'來引用和'使用System.Linq;'來使用類 – AsifAli72090
您可以使用Linq。例如:
bool exists = dt.AsEnumerable().Where(c => c.Field<string>("Author").Equals("your lookup value")).Count() > 0;
您可以將數據庫設置爲IEnumberable並使用linq檢查值是否存在。 看看這個鏈接
LINQ Query on Datatable to check if record exists
給出的例子是
var dataRowQuery= myDataTable.AsEnumerable().Where(row => ...
,你可以補充地方與任何
DataRow rw = table.AsEnumerable().FirstOrDefault(tt => tt.Field<string>("Author") == "Name");
if (rw != null)
{
// row exists
}
添加到您的使用條款:
using System.Linq;
,並添加:
System.Data .DataSetExtensions
參考。
您應該可以使用方法。你可以像我們這樣。
if(myDataTable.Select("Author = '" + AuthorName.Replace("'","''") + '").Length > 0)
...
Select()函數返回匹配where語句的結果的DataRows數組。
LINQ? 'table.Any(t => t.Author == author);' – Davio