Yazar ve Kitap adı olmak üzere iki sütun içeren DataTable'ım var .
Yazar dizesi değerinin DataTable'da zaten mevcut olup olmadığını kontrol etmek istiyorum . Diziler gibi, kontrol etmek için yerleşik bir yöntem var mı array.contains?
Yazar ve Kitap adı olmak üzere iki sütun içeren DataTable'ım var .
Yazar dizesi değerinin DataTable'da zaten mevcut olup olmadığını kontrol etmek istiyorum . Diziler gibi, kontrol etmek için yerleşik bir yöntem var mı array.contains?
Yanıtlar:
Sen kullanabilirsiniz LINQ-to-DataSetile Enumerable.Any:
String author = "John Grisham";
bool contains = tbl.AsEnumerable().Any(row => author == row.Field<String>("Author"));
Başka bir yaklaşım kullanmaktır DataTable.Select:
DataRow[] foundAuthors = tbl.Select("Author = '" + searchAuthor + "'");
if(foundAuthors.Length != 0)
{
// do something...
}
S: Başlıklar sütunlarını bilmiyorsak ve
PEPSIherhangi bir satırın c sütununda herhangi bir hücre değeri olup olmadığını bulmak istiyorsak ne olur ? Bulmak için hepsini döngüye sokabilirim ama daha iyi bir yol var mı? -
Evet, bu sorguyu kullanabilirsiniz:
DataColumn[] columns = tbl.Columns.Cast<DataColumn>().ToArray();
bool anyFieldContainsPepsi = tbl.AsEnumerable()
.Any(row => columns.Any(col => row[col].ToString() == "PEPSI"));
System.Data.DataSetExtensionsreferansa ve using System.Linq;sınıf kullanmaya ekleyin
DataTable.Selectsözdizimi sınırlıdır, oysa LINQ tam .NET çerçevesini veya özel yöntemleri kullanabilir. Bu nedenle, yalnızca .NET 2'ye bağlıysanız kullanmalısınız DataTable.Select, aksi takdirde her zaman LINQ
tbl.Select(), diğer yaklaşımlardan önemli ölçüde daha hızlıdır.
DataRow rw = table.AsEnumerable().FirstOrDefault(tt => tt.Field<string>("Author") == "Name");
if (rw != null)
{
// row exists
}
kullanım maddenize ekleyin:
using System.Linq;
ve Ekle :
System.Data.DataSetExtensions
referanslara.
DataTable.Select () yöntemini kullanabilmeniz gerekir . Bizi böyle yapabilirsin.
if(myDataTable.Select("Author = '" + AuthorName.Replace("'","''") + '").Length > 0)
...
Select () işlevi, where ifadesiyle eşleşen sonuçlar için bir DataRows dizisi döndürür.
veritabanını IEnumberable olarak ayarlayabilir ve değerlerin var olup olmadığını kontrol etmek için linq kullanabilirsiniz. bu bağlantıya bak
Kaydın var olup olmadığını kontrol etmek için Datatable'da LINQ Query
verilen örnek
var dataRowQuery= myDataTable.AsEnumerable().Where(row => ...
herhangi bir yerde tamamlayabilirsin
table.Any(t => t.Author == author);