C#中DataSet轉(zhuǎn)化為實(shí)體集合類的方法
本文實(shí)例講述了C#中DataSet轉(zhuǎn)化為實(shí)體集合類的方法,分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
/// DataSet轉(zhuǎn)換為實(shí)體類
/// </summary>
/// <typeparam name="T">實(shí)體類</typeparam>
/// <param name="p_DataSet">DataSet</param>
/// <param name="p_TableIndex">待轉(zhuǎn)換數(shù)據(jù)表索引</param>
/// <returns>實(shí)體類</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)換為實(shí)體列表
/// </summary>
/// <typeparam name="T">實(shí)體類</typeparam>
/// <param name="p_DataSet">DataSet</param>
/// <param name="p_TableIndex">待轉(zhuǎn)換數(shù)據(jù)表索引</param>
/// <returns>實(shí)體類列表</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;
}
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C#實(shí)現(xiàn)由四周向中心縮小的窗體退出特效
這篇文章主要介紹了C#實(shí)現(xiàn)由四周向中心縮小的窗體退出特效,通過簡(jiǎn)單的C#窗口調(diào)用參數(shù)設(shè)置實(shí)現(xiàn)該退出特效功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-08-08DevExpress設(shè)置餅狀圖的Lable位置實(shí)例
這篇文章主要介紹了DevExpress設(shè)置餅狀圖的Lable位置的方法,以實(shí)例形式詳細(xì)講述了設(shè)置餅狀圖的Lable位置具體實(shí)現(xiàn)過程,需要的朋友可以參考下2014-10-10關(guān)于C#泛型列表List<T>的基本用法總結(jié)
本篇文章主要是對(duì)C#中泛型列表List<T>的基本用法進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01C#保存listbox中數(shù)據(jù)到文本文件的方法
這篇文章主要介紹了C#保存listbox中數(shù)據(jù)到文本文件的方法,涉及C#操作listbox數(shù)據(jù)的相關(guān)技巧,需要的朋友可以參考下2015-04-04