web-dev-qa-db-fra.com

Vérifiez si DataRow existe par nom de colonne en c #?

Je veux faire quelque chose comme ça:

   private User PopulateUsersList(DataRow row)
        {
            Users user = new Users();
            user.Id = int.Parse(row["US_ID"].ToString());
            if (row["US_OTHERFRIEND"] != null)
            {
                user.OtherFriend = row["US_OTHERFRIEND"].ToString();
            }
            return user;
        }

Cependant, je reçois une erreur en disant US_OTHERFRIEND n'appartient pas à la table. Je veux simplement vérifier si ce n'est pas null, puis définir la valeur.

N'y a-t-il pas moyen de faire cela?

99
waqasahmed

Tu devrais essayer

if (row.Table.Columns.Contains("US_OTHERFRIEND"))

Je ne crois pas que cette ligne possède une propriété de colonnes elle-même.

269
Kibbee
if (drMyRow.Table.Columns["ColNameToCheck"] != null)
{
   doSomethingUseful;
{
else { return; }

Bien que le DataRow ne possède pas de propriété Columns, il possède un tableau sur lequel la colonne peut être recherchée.

16
JeffPGMT

Vous pouvez utiliser la DataColumnCollection de votre datatable pour vérifier si la colonne est dans la collection.

Quelque chose comme:

DataColumnCollection Columns = dtItems.Columns;

if (Columns.Contains(ColNameToCheck))
{
  row["ColNameToCheck"] = "Checked";
}
6
Allan Wolff