it-swarm.com.de

Überprüfen Sie, ob in dataTable ein Wert vorhanden ist.

Ich habe DataTable mit zwei Spalten Author und Bookname .

Ich möchte prüfen, ob der angegebene String-Wert Author bereits in der DataTable vorhanden ist. Gibt es eine eingebaute Methode zum Überprüfen, wie für Arrays array.contains

72
valterriann

Sie können LINQ-to-DataSet mit Enumerable.Any verwenden:

String author = "John Grisham";
bool contains = tbl.AsEnumerable().Any(row => author == row.Field<String>("Author"));

Ein anderer Ansatz ist die Verwendung von DataTable.Select :

DataRow[] foundAuthors = tbl.Select("Author = '" + searchAuthor + "'");
if(foundAuthors.Length != 0)
{
    // do something...
}

F: Was ist, wenn wir die Spaltenüberschriften nicht kennen und wir möchten, falls vorhanden Zellenwert PEPSI in beliebigen Zeilenspalten vorhanden? Ich kann alles zu herausfinden, aber gibt es einen besseren Weg? -

Ja, Sie können diese Abfrage verwenden:

DataColumn[] columns = tbl.Columns.Cast<DataColumn>().ToArray();
bool anyFieldContainsPepsi = tbl.AsEnumerable()
    .Any(row => columns.Any(col => row[col].ToString() == "PEPSI"));
176
Rango

Sie können Linq verwenden. So etwas wie:

bool exists = dt.AsEnumerable().Where(c => c.Field<string>("Author").Equals("your lookup value")).Count() > 0;
8
mservidio
DataRow rw = table.AsEnumerable().FirstOrDefault(tt => tt.Field<string>("Author") == "Name");
if (rw != null)
{
// row exists
}

fügen Sie Ihrer using-Klausel hinzu:

using System.Linq;

und füge hinzu:

System.Data.DataSetExtensions

auf Referenzen.

6
Antonio Bakula

Sie sollten die DataTable.Select () -Methode verwenden können. Sie können es uns so machen.

if(myDataTable.Select("Author = '" + AuthorName.Replace("'","''") + '").Length > 0)
    ...

Die Funktion Select () gibt ein Array von DataRows für die Ergebnisse zurück, die der where-Anweisung entsprechen. 

4
Kibbee

sie könnten die Datenbank als IEnumberable festlegen und linq verwenden, um zu prüfen, ob die Werte vorhanden sind

LINQ Query on Datatable zum Überprüfen, ob ein Datensatz vorhanden ist

das gegebene Beispiel ist 

var dataRowQuery= myDataTable.AsEnumerable().Where(row => ...

sie könnten wo mit irgendwelchen ergänzen

0
Blast_dan