When reading from a DataRow, your biggest enemy is a null value. In a DataRow, when the value is null, it is not null: it is equal DBNull.Value.
if(DBNull.Value == null)
{
}
, , . , , DBNull:
string name = (string)dr["Name"];
LINQ, System.Data.DataSetExtensions System.Data
string name = dr.Field<string>("Name");
LINQ,
string name = null;
if(!dr.IsNull("Name"))
name = (string)dr["Name"];
Field :
public static T GetValue<T>(object value)
{
if (value == null || value == DBNull.Value)
return default(T);
else
return (T)value;
}
:
string name = GetValue<string>(dr["Name"]);