Please try to use the IsNull method on DataRow to determine if a value is null or not. DataRow/DataColumn does not actually store null or DBNull – it has a BitArray that says whether or not a non-null value is stored in which columns in the row. Retrieving the column’s value for the row creates a copy of the DBNull.Value structure which doesn’t get created when calling the IsNull method. Ideally this performance difference is never observable, but I feel it does tend to make the code cleaner and is the more correct implementation.
// This is better than any of the many possible // variations of checking the value myDataRow.IsNull(someColumnName) // discouraged myDataRow[someColumnName].Equals(DBNull.Value) myDataRow[someColumnName] == DBNull.Value myDataRow[someColumnName] is DBNull !(myDataRow[someColumnName] is Int32) // (or appropriate type)