2010-04-01 57 views
85

quiero hacer algo como esto:Compruebe si DataRow existe por nombre de columna en C#?

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 que dice US_OTHERFRIEND no pertenece a la mesa. Quiero simplemente verificar si no es nulo, luego establecer el valor.

¿No hay una manera de hacerlo?

Respuesta

233

Usted debe tratar

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

no creo que esa fila tiene una propiedad de columnas en sí.

+1

Comprobé en el nivel de la tabla si (dt.Columns.Contains ("US_OTHERFRIEND")) –

-2

Puede utilizar

try { 
    user.OtherFriend = row["US_OTHERFRIEND"].ToString(); 
} 
catch (Exception ex) 
{ 
    // do something if you want 
} 
+0

+1: Gracias. Lo suficientemente simple :) – waqasahmed

-5
if (row.Columns.Contains("US_OTHERFRIEND")) 
+2

@Big Endian, DataRow no tiene propiedad Columnas. –

+0

esto no funciona ... La fila DataRow no tiene la propiedad Columnas. – waqasahmed

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

Aunque el DataRow no tiene una propiedad Columnas, sí tiene una tabla que permite verificar la columna.

6

Puede usar DataColumnCollection de Your datatable para verificar si la columna está en la colección.

Algo así como:

DataColumnCollection Columns = dtItems.Columns; 

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