2010-04-01 13 views
85

chcę zrobić coś takiego:Sprawdź, czy istnieje DataRow według nazwy kolumny w 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; 
     } 

Jednakże pojawia się błąd mówiący US_OTHERFRIEND nie należą do stołu. Chcę po prostu sprawdzić, czy nie jest pusta, a następnie ustawić wartość.

Czy nie ma sposobu, aby to zrobić?

Odpowiedz

233

Należy starać

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

Nie wierzę, że rząd ma Sama nieruchomość kolumn.

+1

Sprawdziłem na poziomie tabeli, jeśli (dt.Columns.Contains ("US_OTHERFRIEND")) –

-2

Można użyć

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

+1: Dzięki. Wystarczająco proste :) – waqasahmed

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

@Big Endian, DataRow nie ma właściwości Kolumny. –

+0

to nie działa ... Wiersz DataRow nie ma właściwości Kolumny. – waqasahmed

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

Mimo że DataRow nie ma właściwości Kolumny, posiada tabelę, za pomocą której można sprawdzić kolumnę.

6

Możesz użyć DataColumnCollection z Twojego datatable, aby sprawdzić, czy kolumna jest w kolekcji.

Coś jak:

DataColumnCollection Columns = dtItems.Columns; 

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