DataSetToList

一、DataSetToList

private List<T> DataSetToList<T>(DataSet objDs,int numTableIndex = 0)
{
    List<T> objResult = new List<T>();
    string strDTColName = "";           
 
    // 循环所有数据
    for (int i = 0; i < objDs.Tables[0].Rows.Count; i++)
    {
        // 创建泛型类
        T objT = Activator.CreateInstance<T>();
 
        // 获取类型所有属性
        PropertyInfo[] objPropertys = objT.GetType().GetProperties();
 
        // 循环数据表的所有列,并且把值赋值到泛型类里面
        for (int j = 0; j < objDs.Tables[0].Columns.Count; j++)
        {
            // 获取 Table 当前列的名称
            strDTColName = objDs.Tables[0].Columns[j].ColumnName.Trim().ToUpper();
 
            // 获取 Table 字段对应类的属性
            var objPropertyInfo = objPropertys.Where(o => o.Name.Trim().ToUpper().Equals(strDTColName)).First();
 
            // 判断是否查询到相同属性
            if (objPropertyInfo != null)
            {
                // 判断 Table 数据是否有效
                if (objDs.Tables[0].Rows[i][j] != DBNull.Value)
                {
                    // 数据写入到 objT
                    objPropertyInfo.SetValue(objT, objDs.Tables[0].Rows[i][j], null);
                }
                else
                {
                    // 设置默认值
                    objPropertyInfo.SetValue(objT, null, null);
                }
            }
        }
 
        objResult.Add(objT);
    }
 
    return objResult;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值