J'ai une colonne de base de données que j'ai simplement besoin de vérifier pour voir si une valeur est là. J'ai juste besoin d'itérer sur les valeurs de cette colonne pour voir si une valeur existe. AideC#: comment itérer le contenu d'un DataColumn?
2
A
Répondre
4
Vous itérer les lignes, pas la colonne
DataColumn SETTINGS = dt.Columns["DEFAULTSETTINGS"];
foreach(DataRow row in dt.Select())
{
object columnValue = row[SETTINGS];
// Do something with columnValue
}
1
Vous pouvez utiliser LINQ dans .NET 3.5:
DataColumn col = dt.Columns["DEFAULTSETTINGS"];
object value = //expected value
bool valueExists = dt.AsEnumerable().Any(row => row.Field<object>(col).Equals(value));
EDIT: Il semble d'après les commentaires que vous essayez de voir si la colonne 'DEFAULTSETTINGS' contient la chaîne 'default'. La méthode d'extension Field place simplement l'objet dans la colonne de données de cette colonne dans le type donné, vous pouvez donc modifier le paramètre type plutôt que d'utiliser ToString(). Donc, pour votre exemple, vous pouvez probablement utiliser:
DataColumn col = dt.Columns["DEFAULTSETTINGS"];
bool valueExists = dt.AsEnumerable().Any(row => "default".Equals(row.Field<string>(col), StringComparison.OrdinalIgnoreCase);
LINQ est bon; encore plus court serait '.AsEnumerable(). Contient (value)'. –
Je reçois «le nom 'col' n'existe pas dans le contexte actuel ' bool valueExists = dt.AsEnumerable(). Tout (row => row.Field