//获取泛型T的类型
Type type = typeof(T);
//循环获取到的数据的行
for (int i = 0; i < dt.Rows.Count; i++)
{
//实例化获取到的类
object obj = Activator.CreateInstance(type);
//循环获取到的数据的列
for (int j = 0; j < dt.Columns.Count; j++)
{
//获取列的名称
PropertyInfo pinfo = type.GetProperty(dt.Columns[j].ColumnName);
#region 判断获取到的列的类型
//int类型
if (dt.Columns[j].DataType == typeof(Int32))
{
//判断是否是空值
if (dt.Rows[i][j] != null)
{
pinfo.SetValue(obj, int.Parse(dt.Rows[i][j].ToString(), null));
}
else
{
pinfo.SetValue(obj, 0, null);
}
}
//float类型
if (dt.Columns[j].DataType == typeof(float))
{
//判断是否是空值
if (dt.Rows[i][j] != null)
{
pinfo.SetValue(obj, float.Parse(dt.Rows[i][j].ToString(), null));
}
else
{
pinfo.SetValue(obj, 0.0f, null);
}
}
//datetime类型
if (dt.Columns[j].DataType == typeof(DateTime))
{
//判断是否是空值
if (dt.Rows[i][j] != null)
{
pinfo.SetValue(obj, DateTime.Parse(dt.Rows[i][j].ToString(), null));
}
else
{
pinfo.SetValue(obj, "", null);
}
}
//double类型
if (dt.Columns[j].DataType == typeof(double))
{
//判断是否是空值
if (dt.Rows[i][j] != null)
{
pinfo.SetValue(obj, double.Parse(dt.Rows[i][j].ToString(), null));
}
else
{
pinfo.SetValue(obj, 0.00, null);
}
}
//string类型
if (dt.Columns[j].DataType == typeof(string))
{
//判断是否是空值
if (dt.Rows[i][j] != null)
{
pinfo.SetValue(obj, dt.Rows[i][j].ToString(), null);
}
else
{
pinfo.SetValue(obj, "", null);
}
}
#endregion
}
list.Add((T)obj);
}
}
}
return list;
相关文章
- 10-08如何将JSON转换为HTML格式并显示
- 10-08WinForm_根据类的属性利用反射动态创建Label
- 10-08WebUploader点击上传文件选择框会延迟几秒才会显示
- 10-08cSharp:反射 Reflection
- 10-08反射与内置方法str del
- 10-08Arduino 3.5寸 LCD 显示海贼王等图片 显示按键切换页面
- 10-08深入浅出matplotlib(15):同一坐标里显示多条曲线
- 10-08python-在具有共享轴的seapair对图中显示y_ticklabels
- 10-08Open Live Writer 显示不出来代码着色插件解决办法
- 10-08VSCODE安装必要的插件实现浏览器中打开,以及显示网址