Comprobar si existe DataRow por nombre de columna en C #? [duplicar]
Pregunta
Esta pregunta ya tiene una respuesta aquí:
Quiero hacer algo como esto:
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;
}
Sin embargo, me sale un error diciendo US_OTHERFRIEND
no pertenece a la mesa.
Quiero comprobar simplemente si no es nulo, a continuación, establecer el valor.
No hay una manera de hacer esto?
Solución
Usted debe tratar
if (row.Table.Columns.Contains("US_OTHERFRIEND"))
No creo que la fila tiene una propiedad de columnas en sí.
Otros consejos
if (drMyRow.Table.Columns["ColNameToCheck"] != null)
{
doSomethingUseful;
{
else { return; }
Aunque el DataRow no tiene una propiedad de columnas, tiene una tabla que la columna se puede verificar.
Puede utilizar el DataColumnCollection de su tabla de datos para comprobar si la columna está en la colección.
Algo así como:
DataColumnCollection Columns = dtItems.Columns;
if (Columns.Contains(ColNameToCheck))
{
row["ColNameToCheck"] = "Checked";
}
Puede utilizar
try {
user.OtherFriend = row["US_OTHERFRIEND"].ToString();
}
catch (Exception ex)
{
// do something if you want
}
if (row.Columns.Contains("US_OTHERFRIEND"))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow