您的位置:首页 > 编程语言 > C#

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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: