最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中DataSet轉(zhuǎn)化為實體集合類的方法

 更新時間:2014年10月28日 16:06:52   投稿:shichen2014  
這篇文章主要介紹了C#中DataSet轉(zhuǎn)化為實體集合類的方法,是非常實用的技巧,需要的朋友可以參考下

本文實例講述了C#中DataSet轉(zhuǎn)化為實體集合類的方法,分享給大家供大家參考。具體實現(xiàn)方法如下:

復(fù)制代碼 代碼如下:
/// <summary>
/// DataSet轉(zhuǎn)換為實體類
/// </summary>
/// <typeparam name="T">實體類</typeparam>
/// <param name="p_DataSet">DataSet</param>
/// <param name="p_TableIndex">待轉(zhuǎn)換數(shù)據(jù)表索引</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轉(zhuǎn)換為實體列表
/// </summary>
/// <typeparam name="T">實體類</typeparam>
/// <param name="p_DataSet">DataSet</param>
/// <param name="p_TableIndex">待轉(zhuǎn)換數(shù)據(jù)表索引</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;
}

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

最新評論

阳东县| 竹溪县| 庆元县| 永胜县| 高邑县| 阜南县| 西充县| 平定县| 瓮安县| 安溪县| 久治县| 东明县| 商南县| 平邑县| 威信县| 张北县| 定南县| 邵东县| 杂多县| 滦南县| 邯郸县| 石林| 巴彦县| 六枝特区| 郎溪县| 徐闻县| 沐川县| 扬州市| 黑河市| 凯里市| 元江| 富蕴县| 龙川县| 修武县| 广水市| 福鼎市| 文安县| 商南县| 新巴尔虎右旗| 平邑县| 泾阳县|