您的位置:首页 > 数据库

数据库信息批量导入到对象(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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: