C#中将DataTable数据转为实体对象
2008-09-12 13:08
549 查看
一个简单的将DataTable中的一行数据转为相应的实体对象
前提是 实体对象的属性名与DataTable中的列名一样。
public class DataSet2Entity
{
public static T ConvertToEntity<T>(DataTable dt, DataRow row) where T : new()
{
System.Data.DataColumnCollection columns = dt.Columns;
int iColumnCount = columns.Count;
int i;
int j;
T t = new T();
Type elementType;
elementType = t.GetType();
System.Reflection.PropertyInfo[] publicProperties = elementType.GetProperties();
//if (!(publicProperties.Length > iColumnCount))
//{
for (i = 0; i < iColumnCount; i++)
{
for (j = 0; j < publicProperties.Length; j++)
{
if (columns[i].ColumnName.ToLower() == publicProperties[j].Name.ToLower())
{
if (publicProperties[j].PropertyType == typeof(int))
{
int num = 0;
try
{
num = Convert.ToInt32(row[i]);
}
catch
{
}
publicProperties[j].SetValue(t, num, null);
}
else
if (publicProperties[j].PropertyType == typeof(string) && row[i] == System.DBNull.Value)
{
publicProperties[j].SetValue(t, "", null);
}
else
{
object value = row[i] == System.DBNull.Value ? null : row[i];
publicProperties[j].SetValue(t, value, null);
}
}
}
}
return t;
}
}
前提是 实体对象的属性名与DataTable中的列名一样。
public class DataSet2Entity
{
public static T ConvertToEntity<T>(DataTable dt, DataRow row) where T : new()
{
System.Data.DataColumnCollection columns = dt.Columns;
int iColumnCount = columns.Count;
int i;
int j;
T t = new T();
Type elementType;
elementType = t.GetType();
System.Reflection.PropertyInfo[] publicProperties = elementType.GetProperties();
//if (!(publicProperties.Length > iColumnCount))
//{
for (i = 0; i < iColumnCount; i++)
{
for (j = 0; j < publicProperties.Length; j++)
{
if (columns[i].ColumnName.ToLower() == publicProperties[j].Name.ToLower())
{
if (publicProperties[j].PropertyType == typeof(int))
{
int num = 0;
try
{
num = Convert.ToInt32(row[i]);
}
catch
{
}
publicProperties[j].SetValue(t, num, null);
}
else
if (publicProperties[j].PropertyType == typeof(string) && row[i] == System.DBNull.Value)
{
publicProperties[j].SetValue(t, "", null);
}
else
{
object value = row[i] == System.DBNull.Value ? null : row[i];
publicProperties[j].SetValue(t, value, null);
}
}
}
}
return t;
}
}
相关文章推荐
- c#中将8位的byte[]转为Double类型,常用于数据解析
- C#中将DataTable中数据导出到csv文件中
- C#处理Json数据/Json数据转为对象
- C# 将内存中的datatable数据导出为Excel(方法二,创建Excel对象导出)
- C# DataTable转为对象或对象列表
- C#中将DataGridView中查询出来的数据使用DataTable导出为Excel表格(通过NPOI)
- 将form表单元素转为实体对象 或集合 -ASP.NET C#
- C#中将DataTable中数据导出到csv文件中
- C#调用NPOI组件读取excel表格数据转为datatable写入word表格中并向word中插入图片/文字/书签 获得书签列表
- C#DataTable、对象数据转Json的方法
- C#中将DataTable中数据导出到csv文件中
- C#中将DataTable中数据导出到csv文件中
- C#调用NPOI组件读取excel表格数据转为datatable写入word表格中并向word中插入图片/文字/书签 获得书签列表
- C#中将DataTable中数据导出到csv文件中
- 将form表单元素转为实体对象 或集合 -ASP.NET C#
- C# 将内存中的datatable数据导出为Excel(方法二,创建Excel对象导出)
- C# 将内存中的datatable数据导出为Excel(方法二,创建Excel对象导出)【转载】
- 将form表单元素转为实体对象 或集合 -ASP.NET C#
- c#中将【对象转成 JSON 格式的字符串】 及获取Json格式字符串并将转成Json对象 及对js数组取数据
- C# 获取DataTable数据导出到Excel