Verifique se o DataLarow existe pelo nome da coluna em C#? [duplicado
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?
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