web-dev-qa-db-fra.com

Rechercher une valeur dans DataTable

Existe-t-il un moyen de trouver une valeur dans DataTable en C # sans effectuer d'opération ligne par ligne?

La valeur peut faire partie (d'une sous-chaîne de la ligne [nom_colonne] .value, séparée par une virgule) d'une cellule dans la table de données et la valeur peut être présente dans l'une des colonnes de la ligne.

31
Dhana

Un objet DataTable ou DataSet aura une méthode Select qui retournera un tableau DataRow de résultats basé sur la requête passée en tant que paramètre.

En examinant vos besoins, votre expression de filtre devra être quelque peu générale pour que cela fonctionne.

myDataTable.Select("columnName1 like '%" + value + "%'");
55
Andy Rose

Vous pouvez peut-être filtrer les lignes par colonnes possibles comme ceci:

DataRow[] filteredRows = 
  datatable.Select(string.Format("{0} LIKE '%{1}%'", columnName, value));
14
Canavar

AFAIK, rien n'est intégré pour rechercher toutes les colonnes. Vous ne pouvez utiliser Find qu'avec la clé primaire. Select a besoin de colonnes spécifiées. Vous pouvez peut-être utiliser LINQ, mais en fin de compte, cela fait simplement la même boucle. Peut-être simplement le dérouler vous-même? Ce sera au moins lisible.

8
Marc Gravell