2014-12-10 21 views
11

Cho tôi xin là đây là cách chính xác để kiểm tra NULL trong DataRow nếu cần phải trả lại một stringLàm thế nào để kiểm tra xem giá trị DataRow là null

Convert.ToString(row["Int64_id"] ?? "") 

Hoặc nên giống như kiểm tra với DBNull.Value.

Cần nhiều hơn nữa nhỏ hơn

if(row["Int64_id"] != DBNull.Value){...}else if{} 
+0

row [ "ColumnName"] = DBNull.Value, bạn cũng có thể thử những điều như thế này một mình. Một cách là sử dụng trình gỡ lỗi! – mybirthname

Trả lời

24

Kiểm tra nếu cột dữ liệu không phải là null với DataRow.IsNull(string columnName)

if (!row.IsNull("Int64_id")) 
{ 
    // here you can use it safety 
    long someValue = (long)row["Int64_id"]; 
} 
+0

trả về loại 'chuỗi' và nhỏ hơn rất nhiều – AleksP

+0

Kiểm tra xem giá trị có đúng cách để làm điều này không. :) –

1

Chúng tôi đã tạo ra một lớp mở rộng giúp trong các loại tình huống.

public static class DataRowExtensions 
    { 
    public static T FieldOrDefault<T>(this DataRow row, string columnName) 
    { 
     return row.IsNull(columnName) ? default(T) : row.Field<T>(columnName); 
    } 
    } 

Bạn có thể sử dụng như sau:

int id = dataRow.FieldOrDefault<int>("Id"); 
Các vấn đề liên quan