zoukankan      html  css  js  c++  java
  • DataSet转换为实体类

    /// <summary>
    /// DataSet转换为实体类
    /// </summary>
    /// <typeparam name="T">实体类</typeparam>
    /// <param name="p_DataSet">DataSet</param>
    /// <param name="p_TableIndex">待转换数据表索引</param>
    /// <returns>实体类</returns>
    public static T DataSetToEntity<T>(DataSet p_DataSet, int p_TableIndex)
    {
        if (p_DataSet == null || p_DataSet.Tables.Count < 0)
     return default(T);
        if (p_TableIndex > p_DataSet.Tables.Count - 1)
     return default(T);
        if (p_TableIndex < 0)
     p_TableIndex = 0;
        if (p_DataSet.Tables[p_TableIndex].Rows.Count <= 0)
     return default(T);
    
        DataRow p_Data = p_DataSet.Tables[p_TableIndex].Rows[0];
        // 返回值初始化
        T _t = (T)Activator.CreateInstance(typeof(T));
        PropertyInfo[] propertys = _t.GetType().GetProperties();
        foreach (PropertyInfo pi in propertys)
        {
     if (p_DataSet.Tables[p_TableIndex].Columns.IndexOf(pi.Name.ToUpper()) != -1 && p_Data[pi.Name.ToUpper()] != DBNull.Value)
     {
         pi.SetValue(_t, p_Data[pi.Name.ToUpper()], null);
     }
     else
     {
         pi.SetValue(_t, null, null);
     }
        }
        return _t;
    }
    
    /// <summary>
    /// DataSet转换为实体列表
    /// </summary>
    /// <typeparam name="T">实体类</typeparam>
    /// <param name="p_DataSet">DataSet</param>
    /// <param name="p_TableIndex">待转换数据表索引</param>
    /// <returns>实体类列表</returns>
    public static IList<T> DataSetToEntityList<T>(DataSet p_DataSet, int p_TableIndex)
    {
        if (p_DataSet == null || p_DataSet.Tables.Count < 0)
     return default(IList<T>);
        if (p_TableIndex > p_DataSet.Tables.Count - 1)
     return default(IList<T>);
        if (p_TableIndex < 0)
     p_TableIndex = 0;
        if (p_DataSet.Tables[p_TableIndex].Rows.Count <= 0)
     return default(IList<T>);
    
        DataTable p_Data = p_DataSet.Tables[p_TableIndex];
        // 返回值初始化
        IList<T> result = new List<T>();
        for (int j = 0; j < p_Data.Rows.Count; j++)
        {
     T _t = (T)Activator.CreateInstance(typeof(T));
     PropertyInfo[] propertys = _t.GetType().GetProperties();
     foreach (PropertyInfo pi in propertys)
     {
         if (p_Data.Columns.IndexOf(pi.Name.ToUpper()) != -1 && p_Data.Rows[j][pi.Name.ToUpper()] != DBNull.Value)
         {
      pi.SetValue(_t, p_Data.Rows[j][pi.Name.ToUpper()], null);
         }
         else
         {
      pi.SetValue(_t, null, null);
         }
     }
     result.Add(_t);
        }
        return result;
    }
    
  • 相关阅读:
    appium webview切换native界面操作方法
    Appium 常见操作元素
    Appium 常见API 一
    adb shell dumpsys获取设备的当前app的waitActivity
    xpath定位
    python-1.列表、元组操作 2.字符串操作 3.字典操作 4.集合操作 5. 文件操作 6.字符编码与转码 7.内置函数
    python-简单的登陆接口
    python-变量、if else语句 、for循环、while循环(4月26号)
    【2-1】非线性回归
    【1-1】创建图、启动图、变量
  • 原文地址:https://www.cnblogs.com/Kconnie/p/5162014.html
Copyright © 2011-2022 走看看