using System;
using System.Data.Common;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Data.SqlClient;
public class ReaderHelper
{
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <param name="defaultGuid"></param>
/// <returns></returns>
public static Guid GetGuid(DbDataReader rdr, string column, Guid defaultGuid)
{
int ordinal = rdr.GetOrdinal(column);
if (rdr.IsDBNull(ordinal))
{
return defaultGuid;
}
else
{
return rdr.GetGuid(ordinal);
}
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <param name="defaultGuid"></param>
/// <returns></returns>
public static Guid GetGuid(DbDataReader rdr, string column)
{
int ordinal = rdr.GetOrdinal(column);
return rdr.GetGuid(ordinal);
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <returns></returns>
public static decimal GetDecimal(DbDataReader rdr, string column)
{
return GetDecimal(rdr, column, 0);
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public static decimal GetDecimal(DbDataReader rdr, string column, decimal defaultValue)
{
int ordinal = rdr.GetOrdinal(column);
if (rdr.IsDBNull(ordinal))
{
return defaultValue;
}
else
{
return rdr.GetDecimal(ordinal);
}
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <returns></returns>
public static double GetDouble(DbDataReader rdr, string column)
{
return GetDouble(rdr, column, 0);
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public static double GetDouble(DbDataReader rdr, string column, double defaultValue)
{
int ordinal = rdr.GetOrdinal(column);
if (rdr.IsDBNull(ordinal))
{
return defaultValue;
}
else
{
return rdr.GetDouble(ordinal);
}
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <returns></returns>
public static DateTime GetDateTime(DbDataReader rdr, string column)
{
return GetDateTime(rdr, column, new DateTime());
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public static DateTime GetDateTime(DbDataReader rdr, string column, DateTime defaultValue)
{
int ordinal = rdr.GetOrdinal(column);
if (rdr.IsDBNull(ordinal))
{
return defaultValue;
}
else
{
return rdr.GetDateTime(ordinal);
}
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <returns></returns>
public static string GetString(DbDataReader rdr, string column)
{
return GetString(rdr, column, null);
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public static string GetString(DbDataReader rdr, string column, string defaultValue)
{
int ordinal = rdr.GetOrdinal(column);
if (rdr.IsDBNull(ordinal))
{
return defaultValue;
}
else
{
return rdr.GetString(ordinal);
}
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <returns></returns>
public static string GetStringNotNull(DbDataReader rdr, string column)
{
int ordinal = rdr.GetOrdinal(column);
if (rdr.IsDBNull(ordinal))
{
return "";
}
else
{
string value = rdr.GetString(ordinal);
if (value == null) value = "";
return value;
}
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <returns></returns>
public static int GetInt(DbDataReader rdr, string column)
{
return GetInt(rdr, column, 0);
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public static int GetInt(DbDataReader rdr, string column, int defaultValue)
{
int ordinal = rdr.GetOrdinal(column);
if (rdr.IsDBNull(ordinal))
{
return defaultValue;
}
else
{
return rdr.GetInt32(ordinal);
}
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <returns></returns>
public static int GetInt16(DbDataReader rdr, string column)
{
return GetInt16(rdr, column, 0);
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public static int GetInt16(DbDataReader rdr, string column, int defaultValue)
{
int ordinal = rdr.GetOrdinal(column);
if (rdr.IsDBNull(ordinal))
{
return defaultValue;
}
else
{
return rdr.GetInt16(ordinal);
}
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public static double GetMoney(DbDataReader rdr, string column)
{
int ordinal = rdr.GetOrdinal(column);
SqlDataReader sqlReader = (SqlDataReader)rdr;
if (sqlReader.IsDBNull(ordinal))
{
return new double();
}
else
{
return double.Parse(sqlReader.GetSqlMoney(ordinal).ToString());
}
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <returns></returns>
public static byte GetByte(DbDataReader rdr, string column)
{
int ordinal = rdr.GetOrdinal(column);
if (rdr.IsDBNull(ordinal))
{
return new byte();
}
else
{
return rdr.GetByte(ordinal);
}
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public static char GetChar(DbDataReader rdr, string column, char defaultValue)
{
int ordinal = rdr.GetOrdinal(column);
if (rdr.IsDBNull(ordinal))
{
return defaultValue;
}
else
{
char[] c = new char[1];
rdr.GetChars(0, 0, c, 0, 1);
return c[0];
}
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <returns></returns>
public static bool GetBool(DbDataReader rdr, string column)
{
return GetBool(rdr, column, false);
}
/// <summary>
///
/// </summary>
/// <param name="rdr"></param>
/// <param name="column"></param>
/// <param name="defaultValue"></param>
/// <returns></returns>
public static bool GetBool(DbDataReader rdr, string column, bool defaultValue)
{
int ordinal = rdr.GetOrdinal(column);
if (rdr.IsDBNull(ordinal))
{
return defaultValue;
}
else
{
string value = "";
value = rdr.GetValue(ordinal).ToString();
if (value.Equals("yes", StringComparison.OrdinalIgnoreCase)
|| value.Equals("y", StringComparison.OrdinalIgnoreCase)
|| value.Equals("on", StringComparison.OrdinalIgnoreCase)
|| value.Equals("true", StringComparison.OrdinalIgnoreCase)
|| value.Equals("1", StringComparison.OrdinalIgnoreCase))
{
return true;
}
return false;
}
}
}