手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#中DataSet转化为实体集合类的方法
C#中DataSet转化为实体集合类的方法
摘要:本文实例讲述了C#中DataSet转化为实体集合类的方法,分享给大家供大家参考。具体实现方法如下:复制代码代码如下://////DataSe...

本文实例讲述了C#中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;

}

希望本文所述对大家的C#程序设计有所帮助。

【C#中DataSet转化为实体集合类的方法】相关文章:

C# 如何判断两个文件内容是否相同的方法

c#实现隐藏与显示任务栏的方法详解

C#实现窗体淡入淡出效果的方法总结

C#中读写INI文件的方法例子

C#中事件处理的个人体会

使用C#开发Socket通讯的方法

C#中一些你可能没用过的调试窗口的方法

C# DataTable 转换为 实体类对象实例

C#线程 BeginInvoke和EndInvoke使用方法

C#中Web.Config加密与解密的方法

精品推荐
分类导航