2010-04-01 16 views
85

tôi muốn làm một cái gì đó như thế này:Kiểm tra xem DataRow có tồn tại bằng tên cột trong C# không?

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

Tuy nhiên, tôi nhận được một lỗi nói US_OTHERFRIEND không thuộc về bàn. Tôi muốn chỉ đơn giản là kiểm tra nếu nó không phải là null, sau đó đặt giá trị.

Không có cách nào để thực hiện việc này?

Trả lời

233

Bạn nên cố gắng

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

Tôi không tin rằng hàng đó có một tài sản riêng của mình cột.

+1

Tôi đã kiểm tra ở cấp bảng nếu (dt.Columns.Contains ("US_OTHERFRIEND")) –

-2

Bạn có thể sử dụng

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

+1: Xin cảm ơn. Đơn giản đủ :) – waqasahmed

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

@Big Endian, DataRow không có thuộc tính Cột. –

+0

điều này không hoạt động ... Dòng DataRow không có thuộc tính Cột. – waqasahmed

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

Mặc dù DataRow không có thuộc tính Cột, bảng này có thể kiểm tra cột.

6

Bạn có thể sử dụng DataColumnCollection of Your datatable để kiểm tra xem cột có nằm trong bộ sưu tập hay không.

Cái gì như:

DataColumnCollection Columns = dtItems.Columns; 

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