The following code snippets make retrieving values from DataRows safely, and properly casts them to the desired values.
/// <summary>
/// Gets the int value from data row.
/// </summary>
/// <param name="fieldName">Name of the field.</param>
/// <param name="dr">The dr.</param>
/// <returns></returns>
public static int GetIntValueFromDataRow(string fieldName, DataRow dr)
{
return (dr[fieldName] == DBNull.Value ? 0 : Convert.ToInt32(dr[fieldName].ToString()));
}
/// <summary>
/// Gets the int value from data row.
/// </summary>
/// <param name="fieldName">Name of the field.</param>
/// <param name="dr">The dr.</param>
/// <param name="defaultValue">The default value.</param>
/// <returns></returns>
public static int GetIntValueFromDataRow(string fieldName, DataRow dr, int defaultValue)
{
return (dr[fieldName] == DBNull.Value ? defaultValue : Convert.ToInt32(dr[fieldName].ToString()));
}
/// <summary>
/// Gets the string value from data row.
/// </summary>
/// <param name="fieldName">Name of the field.</param>
/// <param name="dr">The dr.</param>
/// <returns></returns>
public static string GetStringValueFromDataRow(string fieldName, DataRow dr)
{
return (dr[fieldName] == DBNull.Value ? String.Empty : dr[fieldName].ToString());
}
/// <summary>
/// Gets the string value from data row.
/// </summary>
/// <param name="fieldName">Name of the field.</param>
/// <param name="dr">The dr.</param>
/// <param name="defaultValue">The default value.</param>
/// <returns></returns>
public static string GetStringValueFromDataRow(string fieldName, DataRow dr, string defaultValue)
{
return (dr[fieldName] == DBNull.Value ? defaultValue : dr[fieldName].ToString());
}
/// <summary>
/// Gets the bool value from data row.
/// </summary>
/// <param name="fieldName">Name of the field.</param>
/// <param name="dr">The dr.</param>
/// <returns></returns>
public static bool GetBoolValueFromDataRow(string fieldName, DataRow dr)
{
return (dr[fieldName] == DBNull.Value ? false : Convert.ToBoolean(dr[fieldName].ToString()));
}
/// <summary>
/// Gets the decimal value from data row.
/// </summary>
/// <param name="fieldName">Name of the field.</param>
/// <param name="dr">The dr.</param>
/// <returns></returns>
public static decimal GetDecimalValueFromDataRow(string fieldName, DataRow dr)
{
return (dr[fieldName] == DBNull.Value ? 0 : Convert.ToDecimal(dr[fieldName].ToString()));
}