我数据库中存的是string类型的 在实体中时Guid类型的
下面是转换成泛型时遇到的问题 的代码:
PropertyInfo[] properties = typeof(CommedityClassesEntity).GetProperties();//获取实体类型的属性集合
Hashtable hh = GetColumnType(dt.Columns);//属性名称和类型名的键值对集合
IList<string> colNames = GetColumnNames(hh);//按照属性顺序的列名集合
ListEntity<CommedityClassesEntity> list = new ListEntity<CommedityClassesEntity>();
CommedityClassesEntity model = default(CommedityClassesEntity);
foreach (DataRow dr in dt.Rows)
{
model = new CommedityClassesEntity();//创建实体
int i = 0;
foreach (PropertyInfo p in properties)
{
if (p.PropertyType == typeof(string))
{
p.SetValue(model, dr[colNames[i++]], null);
}
else if (p.PropertyType == typeof(int))
{
p.SetValue(model, int.Parse(dr[colNames[i++]].ToString()), null);
}
else if (p.PropertyType == typeof(DateTime))
{
p.SetValue(model, DateTime.Parse(dr[colNames[i++]].ToString()), null);
}
else if (p.PropertyType == typeof(float))
{
p.SetValue(model, float.Parse(dr[colNames[i++]].ToString()), null);
}
else if (p.PropertyType == typeof(double))
{
p.SetValue(model, double.Parse(dr[colNames[i++]].ToString()), null);
}
else if (p.PropertyType == typeof(Guid))
{
p.SetValue(model,new Guid(dr[colNames[i++]].ToString()), null); 这句话错误 我想问问 怎么想才正确
}
}
符合人家构造函数的参数格式吗,如 dddddddddddddddddddddddddddddddd,32个忽略大小写的十六进制数字等,好几个格式
Guid.Parse(dr[colNames[i++]].ToString())
不要用new Guid
转换他干什么!
string aa = "maopian";
Guid gudi = new Guid(aa);