数据库信息批量导入到对象(c#)
2016-09-27 00:20
447 查看
该部分需要对应的类的fieldName与数据库字段名称相同。
/// <summary>
/// 批量实现最后的子节点数据添加
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="obj">对象目标</param>
/// <param name="dr">data数据</param>
/// <returns>返回值</returns>
public static List<T> JsonLastNodeInsert<T>(DataRow[] dr) where T : new()
{
List<T> obj_list = new List<T>();
for (int j = 0; j < dr.Length; j++)
{
T obj = new T();
foreach (FieldInfo field in obj.GetType().GetFields())
{
if (dr[j][field.Name] != null)
{
if (field.FieldType == typeof(string))
{
field.SetValue(obj, dr[j][field.Name].ToString());
}
if (field.FieldType == typeof(int))
{
field.SetValue(obj, int.Parse(dr[j][field.Name].ToString()));
}
if (field.FieldType == typeof(bool))
{
field.SetValue(obj, bool.Parse((dr[j][field.Name].ToString())));
}
}
}
obj_list.Add(obj);
}
return obj_list;
}
/// <summary>
/// 批量实现最后的子节点数据添加
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="obj">对象目标</param>
/// <param name="dr">data数据</param>
/// <returns>返回值</returns>
public static List<T> JsonLastNodeInsert<T>(DataTable dt) where T : new()
{
List<T> obj_list = new List<T>();
for (int j = 0; j < dt.Rows.Count; j++)
{
T obj = new T();
foreach (FieldInfo field in obj.GetType().GetFields())
{
if (dt.Rows[j][field.Name] != null)
{
if (field.FieldType == typeof(string))
{
field.SetValue(obj, dt.Rows[j][field.Name].ToString());
}
if (field.FieldType == typeof(int))
{
field.SetValue(obj, int.Parse(dt.Rows[j][field.Name].ToString()));
}
if (field.FieldType == typeof(bool))
{
field.SetValue(obj, bool.Parse((dt.Rows[j][field.Name].ToString())));
}
}
}
obj_list.Add(obj);
}
return obj_list;
}
/// <summary>
/// 实现最后的子节点数据添加
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="obj">对象目标</param>
/// <param name="dr">data数据</param>
/// <returns>返回值</returns>
public static T JsonLastNodeInsert<T>(DataRow dr) where T : new()
{
T obj = new T();
foreach (FieldInfo field in obj.GetType().GetFields())
{
if (dr[field.Name] != null)
{
if (field.FieldType == typeof(string))
{
field.SetValue(obj, dr[field.Name].ToString());
}
if (field.FieldType == typeof(int))
{
field.SetValue(obj, int.Parse(dr[field.Name].ToString()));
}
if (field.FieldType == typeof(bool))
{
field.SetValue(obj, bool.Parse((dr[field.Name].ToString())));
}
}
}
return obj;
}
测试案例:
List<Inventory> inventory_list = OperationHelper.JsonLastNodeInsert<Inventory>(dt_inventory);
对象原型:
/// <summary>
/// 库存信息
/// </summary>
public class Inventory
{
/// <summary>
/// 物料唯一编号
/// </summary>
public string DID;
/// <summary>
/// 料塔唯一编号
/// </summary>
public string TowerNo;
/// <summary>
/// PO清单编号
/// </summary>
public string PO;
/// <summary>
/// BYD料号
/// </summary>
public string BYD_PN;
/// <summary>
/// 批号
/// </summary>
public string Lot_Code;
/// <summary>
/// 日期编码
/// </summary>
public string Date_Code;
/// <summary>
/// 入库位置
/// </summary>
public string PositionCode;
/// <summary>
/// 仓码
/// </summary>
public string WCode;
/// <summary>
/// 数量
/// </summary>
public int Qty;
}
/// <summary>
/// 批量实现最后的子节点数据添加
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="obj">对象目标</param>
/// <param name="dr">data数据</param>
/// <returns>返回值</returns>
public static List<T> JsonLastNodeInsert<T>(DataRow[] dr) where T : new()
{
List<T> obj_list = new List<T>();
for (int j = 0; j < dr.Length; j++)
{
T obj = new T();
foreach (FieldInfo field in obj.GetType().GetFields())
{
if (dr[j][field.Name] != null)
{
if (field.FieldType == typeof(string))
{
field.SetValue(obj, dr[j][field.Name].ToString());
}
if (field.FieldType == typeof(int))
{
field.SetValue(obj, int.Parse(dr[j][field.Name].ToString()));
}
if (field.FieldType == typeof(bool))
{
field.SetValue(obj, bool.Parse((dr[j][field.Name].ToString())));
}
}
}
obj_list.Add(obj);
}
return obj_list;
}
/// <summary>
/// 批量实现最后的子节点数据添加
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="obj">对象目标</param>
/// <param name="dr">data数据</param>
/// <returns>返回值</returns>
public static List<T> JsonLastNodeInsert<T>(DataTable dt) where T : new()
{
List<T> obj_list = new List<T>();
for (int j = 0; j < dt.Rows.Count; j++)
{
T obj = new T();
foreach (FieldInfo field in obj.GetType().GetFields())
{
if (dt.Rows[j][field.Name] != null)
{
if (field.FieldType == typeof(string))
{
field.SetValue(obj, dt.Rows[j][field.Name].ToString());
}
if (field.FieldType == typeof(int))
{
field.SetValue(obj, int.Parse(dt.Rows[j][field.Name].ToString()));
}
if (field.FieldType == typeof(bool))
{
field.SetValue(obj, bool.Parse((dt.Rows[j][field.Name].ToString())));
}
}
}
obj_list.Add(obj);
}
return obj_list;
}
/// <summary>
/// 实现最后的子节点数据添加
/// </summary>
/// <typeparam name="T">对象类型</typeparam>
/// <param name="obj">对象目标</param>
/// <param name="dr">data数据</param>
/// <returns>返回值</returns>
public static T JsonLastNodeInsert<T>(DataRow dr) where T : new()
{
T obj = new T();
foreach (FieldInfo field in obj.GetType().GetFields())
{
if (dr[field.Name] != null)
{
if (field.FieldType == typeof(string))
{
field.SetValue(obj, dr[field.Name].ToString());
}
if (field.FieldType == typeof(int))
{
field.SetValue(obj, int.Parse(dr[field.Name].ToString()));
}
if (field.FieldType == typeof(bool))
{
field.SetValue(obj, bool.Parse((dr[field.Name].ToString())));
}
}
}
return obj;
}
测试案例:
List<Inventory> inventory_list = OperationHelper.JsonLastNodeInsert<Inventory>(dt_inventory);
对象原型:
/// <summary>
/// 库存信息
/// </summary>
public class Inventory
{
/// <summary>
/// 物料唯一编号
/// </summary>
public string DID;
/// <summary>
/// 料塔唯一编号
/// </summary>
public string TowerNo;
/// <summary>
/// PO清单编号
/// </summary>
public string PO;
/// <summary>
/// BYD料号
/// </summary>
public string BYD_PN;
/// <summary>
/// 批号
/// </summary>
public string Lot_Code;
/// <summary>
/// 日期编码
/// </summary>
public string Date_Code;
/// <summary>
/// 入库位置
/// </summary>
public string PositionCode;
/// <summary>
/// 仓码
/// </summary>
public string WCode;
/// <summary>
/// 数量
/// </summary>
public int Qty;
}
相关文章推荐
- 在C#项目中需要用double类型操作MSSQL float类型数据(附C#数据类型和SQL数据类型对照)
- 再次认识mysql(六)触发器
- Redis Sorted Set有序集合 存储操作方法
- DB-Mysql-快速安装
- mysql出现启动不了问题
- Oracle数据库中 call 和 exec的区别
- DB-Mysql-基础
- oracle存储过程常用技巧
- Oracle函数的使用
- JDBC关于Sqlite的配置
- MySql ZIP 包 安装 的详细步骤以及可能的错误
- mysql .zip 包简易安装
- mysql内存表同步机制
- wordpress内置类库 对数据库的各类、操作
- mongodb CRUD操作之创建
- MySQL重命名表(RENAME TABLE语句)
- mongodb 副本集创建
- MongoDB复杂查询样例代码-Java
- Oracle 常用查询语句
- oneproxy-for-sqlserver的配置方法