2010-04-01 24 views
85

Böyle bir şey yapmak istiyorum:DataRow'da sütun adında C# var mı kontrol edin?

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

Ancak, tabloya ait değil US_OTHERFRIEND söyleyerek bir hata alıyorum. Sadece null olup olmadığını kontrol etmek istiyorum, sonra değeri ayarlayın.

Bunu yapmanın bir yolu yok mu?

cevap

233

kullanabilirsiniz.

+1

Tablo düzeyinde kontrol ettim (dt.Columns.Contains ("US_OTHERFRIEND")) –

-2

Sen O satır bir sütun özelliği kendisi vardır inanmıyorum

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

denemelisiniz

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

+1: Teşekkürler. Basit yeterli :) – waqasahmed

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

@Big Endian, DataRow, Columns özelliği içermiyor. –

+0

bu işe yaramıyor ... DataRow satırında Columns özelliği yok. – waqasahmed

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

DataRow'un bir Sütun özelliği olmamasına rağmen, sütunun kontrol edilebileceği bir Tablosu vardır.

6

Sütunun koleksiyonda olup olmadığını kontrol etmek için DataColumnCollection Verilerinizi kullanabilirsiniz. gibi

şey:

DataColumnCollection Columns = dtItems.Columns; 

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