Pergunta

Esta pergunta já tem uma resposta aqui:

Eu quero fazer algo assim:

   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;
        }

No entanto, recebo um erro dizendo US_OTHERFRIEND não pertence à tabela. Quero simplesmente verificar se não é nulo e defina o valor.

Não existe uma maneira de fazer isso?

Foi útil?

Solução

Você deveria tentar

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

Não acredito que a linha tenha uma propriedade de colunas.

Outras dicas

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

Embora o DataRow não tenha uma propriedade de colunas, ele possui uma tabela para a qual a coluna pode ser verificada.

Você pode usar o DataColumnCollection do seu DataTable para verificar se a coluna está na coleção.

Algo como:

DataColumnCollection Columns = dtItems.Columns;

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

Você pode usar

try {
   user.OtherFriend = row["US_OTHERFRIEND"].ToString();
}
catch (Exception ex)
{
   // do something if you want 
}
if (row.Columns.Contains("US_OTHERFRIEND"))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top