Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check if Datarow value is null

Tell me please is this is correct way to check NULL in DataRow if need to return a string

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

Or should be like check with DBNull.Value.

Need to so much more smaller than

if(row["Int64_id"] != DBNull.Value){...}else if{} 
like image 705
AleksP Avatar asked Dec 10 '14 10:12

AleksP


People also ask

How do I check if a DataRow column exists?

You can use the DataColumnCollection of Your datatable to check if the column is in the collection.


2 Answers

Check if the data column is not null with DataRow.IsNull(string columnName)

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

There are overloads for it using the index of the column or if you have the instance of the DataColumn. If you are sure about the index, use the index version which tends to be faster than the other options.

like image 195
Felipe Oriani Avatar answered Oct 05 '22 02:10

Felipe Oriani


We have created an extension class that helps in these kinds of situations.

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

You can use is as follows:

int id = dataRow.FieldOrDefault<int>("Id"); 
like image 29
Ajit Goel Avatar answered Oct 05 '22 02:10

Ajit Goel