2012-05-03 37 views
15

Làm cách nào để viết mã đọc DataRow nhưng, nếu được lưu trong DataRow không có ở đó, nó chỉ bỏ qua và di chuyển như sau:Xác minh rằng một cột tồn tại trong DataRow trước khi đọc giá trị

string BarcodeIssueUnit; 
if (dr_art_line["BarcodeIssueUnit"].ToString().Length <= 0) 
{ 
    BarcodeIssueUnit = ""; 
} 
else 
{ 
    BarcodeIssueUnit = dr_art_line["BarcodeIssueUnit"].ToString(); 
} 

Bây giờ, Cột BarcodeIssueUnit có thể thuộc về bảng nhưng, trong một số trường hợp, cột đó không tồn tại trong bảng. Nếu nó không có ở đó và tôi đọc nó, tôi nhận được lỗi này:

System.ArgumentException: Column `BarcodeIssueUnit` 
does not belong to table Line. 

Tôi chỉ muốn chạy một kiểm tra nếu cột là có ok, chúng ta hãy xem các giá trị, nếu nó không, chỉ cần bỏ qua phần đó và đi trên.

+0

VB, vẫn còn là một trùng lặp: http://stackoverflow.com/question/1984893/how-to-check-if-a-column-with-a-given-name-tồn tại-in-a-datarow – nawfal

+0

Sao chép có thể có của [Làm thế nào tôi có thể xác thực nếu cột tồn tại trong một đối tượng DataRow? ] (http://stackoverflow.com/quest ion/9677852/how-can-i-validate-if-the-column-tồn tại-trong-một-datarow-đối tượng) –

Trả lời

38

Kiểm tra tên cột bằng cách sử dụng DataRow.Table.Columns. Nếu có giá trị chuyển đổi khác đi ra.

BarcodeIssueUnit = dr_art_line.Table.Columns.Contains("BarcodeIssueUnit")? 
        dr_art_line["BarcodeIssueUnit"].ToString(): ""; 
+0

Ok, cách viết nó? – CrBruno

+0

ok, cảm ơn đã nhận nó – CrBruno

1

Bạn có thể kiểm tra xem chương trình bảng cho hàng hiện tại chứa một cột cụ thể:

if (!dr_art_line.Table.Columns.Contains("BarcodeIssueUnit")) 
{ 
    BarcodeIssueUnit = ""; 
} 
else 
{ 
     BarcodeIssueUnit = dr_art_line["BarcodeIssueUnit"].ToString(); 
} 
+0

OP rõ ràng nói đó là một hàng dữ liệu. – Shai

+0

Do đó tiền tố 'dr_'. –

Các vấn đề liên quan