better handling for DBNull.Value