GetSafeData.cs
上传用户:gooyliu
上传日期:2018-09-29
资源大小:5816k
文件大小:3k
源码类别:

.net编程

开发平台:

C#

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data;
  6. namespace DataAccessLayer
  7. {
  8.     /// <summary>
  9.     /// 从数据库中安全获取数据,即当数据库中的数据为NULL时,保证读取不发生异常。
  10.     /// </summary>
  11.     public class GetSafeData
  12.     {
  13.         #region DataRow
  14.         /// <summary>
  15.         /// 从一个DataRow中,安全得到列colname中的值:值为字符串类型
  16.         /// </summary>
  17.         /// <param name="row">数据行对象</param>
  18.         /// <param name="colname">列名</param>
  19.         /// <returns>如果值存在,返回;否则,返回System.String.Empty</returns>
  20.         public static string ValidateDataRow_S(DataRow row, string colname)
  21.         {
  22.             if (row[colname] != DBNull.Value)
  23.                 return row[colname].ToString();
  24.             else
  25.                 return System.String.Empty;
  26.         }
  27.         /// <summary>
  28.         /// 从一个DataRow中,安全得到列colname中的值:值为整数类型
  29.         /// </summary>
  30.         /// <param name="row">数据行对象</param>
  31.         /// <param name="colname">列名</param>
  32.         /// <returns>如果值存在,返回;否则,返回System.Int32.MinValue</returns>
  33.         public static int ValidateDataRow_N(DataRow row, string colname)
  34.         {
  35.             if (row[colname] != DBNull.Value)
  36.                 return Convert.ToInt32(row[colname]);
  37.             else
  38.                 return System.Int32.MinValue;
  39.         }
  40.         /// <summary>
  41.         /// 从一个DataRow中,安全得到列colname中的值:值为布尔类型
  42.         /// </summary>
  43.         /// <param name="row">数据行对象</param>
  44.         /// <param name="colname">列名</param>
  45.         /// <returns>如果值存在,返回;否则,返回System.Int32.MinValue</returns>
  46.         public static bool ValidateDataRow_B(DataRow row, string colname)
  47.         {
  48.             if (row[colname] != DBNull.Value)
  49.                 return Convert.ToBoolean(row[colname]);
  50.             else
  51.                 return false;
  52.         }
  53.         /// <summary>
  54.         /// 从一个DataRow中,安全得到列colname中的值:值为浮点数类型
  55.         /// </summary>
  56.         /// <param name="row">数据行对象</param>
  57.         /// <param name="colname">列名</param>
  58.         /// <returns>如果值存在,返回;否则,返回System.Double.MinValue</returns>
  59.         public static double ValidateDataRow_F(DataRow row, string colname)
  60.         {
  61.             if (row[colname] != DBNull.Value)
  62.             {
  63.                 String type = row[colname].GetType().ToString();
  64.                 Convert.ToDecimal(row[colname]);
  65.                 return Convert.ToDouble(row[colname]);
  66.             }
  67.             else
  68.                 return System.Double.MinValue;
  69.         }
  70.         /// <summary>
  71.         /// 从一个DataRow中,安全得到列colname中的值:值为时间类型
  72.         /// </summary>
  73.         /// <param name="row">数据行对象</param>
  74.         /// <param name="colname">列名</param>
  75.         /// <returns>如果值存在,返回;否则,返回System.DateTime.MinValue;</returns>
  76.         public static DateTime ValidateDataRow_T(DataRow row, string colname)
  77.         {
  78.             if (row[colname] != DBNull.Value)
  79.                 return Convert.ToDateTime(row[colname]);
  80.             else
  81.                 return System.DateTime.MinValue;
  82.         }
  83.       
  84.         #endregion DataRow
  85.     }
  86. }