J'ai un DataTable avec deux colonnes Auteur y Nom de livre .
Je veux vérifier si la valeur de la chaîne donnée Auteur existe déjà dans la DataTable. Existe-t-il une méthode intégrée pour le vérifier, comme pour les tableaux ? array.contains
?
J'ai un DataTable avec deux colonnes Auteur y Nom de livre .
Je veux vérifier si la valeur de la chaîne donnée Auteur existe déjà dans la DataTable. Existe-t-il une méthode intégrée pour le vérifier, comme pour les tableaux ? array.contains
?
Vous pouvez utiliser LINQ-to-DataSet
con Enumerable.Any
:
String author = "John Grisham";
bool contains = tbl.AsEnumerable().Any(row => author == row.Field<String>("Author"));
Une autre approche consiste à utiliser DataTable.Select
:
DataRow[] foundAuthors = tbl.Select("Author = '" + searchAuthor + "'");
if(foundAuthors.Length != 0)
{
// do something...
}
Q : que se passe-t-il si nous ne connaissons pas les en-têtes des colonnes et que nous voulons trouver si une valeur de cellule
PEPSI
existe dans toutes les lignes 'c colonnes ? Je peux tout boucler pour le pour le découvrir, mais y a-t-il un meilleur moyen ? -
Oui, vous pouvez utiliser cette requête :
DataColumn[] columns = tbl.Columns.Cast<DataColumn>().ToArray();
bool anyFieldContainsPepsi = tbl.AsEnumerable()
.Any(row => columns.Any(col => row[col].ToString() == "PEPSI"));
Vous devriez être en mesure d'utiliser le DataTable.Select() méthode. Vous pouvez l'utiliser comme ceci.
if(myDataTable.Select("Author = '" + AuthorName.Replace("'","''") + '").Length > 0)
...
La fonction Select() renvoie un tableau de DataRows pour les résultats correspondant à l'instruction where.
Vous pourriez définir la base de données comme IEnumberable et utiliser linq pour vérifier si les valeurs existent. Consultez ce lien
Requête LINQ sur Datatable pour vérifier si un enregistrement existe
l'exemple donné est
var dataRowQuery= myDataTable.AsEnumerable().Where(row => ...
vous pourriez compléter où avec n'importe quel
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.