DataRow转实体
Posted mact
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataRow转实体相关的知识,希望对你有一定的参考价值。
调用 DataRow row = new DataRow();
ConvertToEntity<实体类>(row)
private T ConvertToEntity<T>(DataRow row) where T : new() { T t = new T(); PropertyInfo[] propertys = t.GetType().GetProperties();// 获得此模型的公共属性 foreach (PropertyInfo pi in propertys) { if (row.Table.Columns.Contains(pi.Name)) { if (!pi.CanWrite) continue; var value = row[pi.Name]; try { if (value != DBNull.Value && value != null && value.ToString() != "") { if (pi.PropertyType.FullName.ToUpper().Contains("DECIMAL")) { pi.SetValue(t, decimal.Parse(value.ToString()), null); } else if (pi.PropertyType.FullName.ToUpper().Contains("DOUBLE")) { pi.SetValue(t, double.Parse(value.ToString()), null); } else if (pi.PropertyType.FullName.ToUpper().Contains("INT32")) { //if (value.ToString().Contains(".")) //{ //} //pi.SetValue(t, int.Parse(value.ToString()), null); pi.SetValue(t, Convert.ToInt32(value.ToString()), null); } else if (pi.PropertyType.FullName.ToUpper().Contains("INT16")) { if (value.ToString().Contains(".")) { } pi.SetValue(t, short.Parse(value.ToString()), null); } else if (pi.PropertyType.FullName.ToUpper().Contains("STRING")) { pi.SetValue(t, value.ToString(), null); } else if (pi.PropertyType.FullName.ToUpper().Contains("DATETIME")) { pi.SetValue(t, DateTime.Parse(value.ToString()), null); } else pi.SetValue(t, value, null); } } catch (Exception ex) { //throw ex; } } } return t; }
以上是关于DataRow转实体的主要内容,如果未能解决你的问题,请参考以下文章