首页 > 其他分享 >DataGridView列填充实体类

DataGridView列填充实体类

时间:2024-06-17 09:09:57浏览次数:18  
标签:sourse 实体类 填充 res value DataGridView DataRow propertyInfo null

使用的地方:
假如你有一个名为rgvProcessDtl的DataGridView控件
DataTable dt = (DataTable)rgvProcessDtl.DataSource;
foreach (DataRow row in dt)
{
OG_ProcessGuidDtl dtl = new OG_ProcessGuidDtl();
FillModel(dtl, row);//将实体类对象与grid行填充

///


/// 将数据填入实体类
///

///
///
public void FillModel(T target, object sourse)
{
if (sourse is DataRow) //源数据为DataRow
{
FillModelByDataRow(target, (DataRow)sourse);
}
if (sourse is T)
{

}

}

///


/// 将DataRow 数据存入T
///

/// 目标
///
private void FillModelByDataRow(T target, DataRow sourse)
{
foreach (PropertyInfo p in typeof(T).GetProperties())
{
try
{
if (sourse[p.Name] != null)
FillModelProperty(target, p.Name, sourse[p.Name]);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}

private void FillModelProperty(T res ,string columnName, object value)
{
PropertyInfo propertyInfo = res.GetType().GetProperty(columnName, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);
if (propertyInfo != null && value != DBNull.Value)
{
switch (propertyInfo.PropertyType.FullName)
{
case "System.Decimal":
propertyInfo.SetValue(res, Converter.ToDecimal(value), null);
break;
case "System.String":
propertyInfo.SetValue(res, value, null);
break;
case "System.Int32":
propertyInfo.SetValue(res, Converter.ToInt32(value), null);
break;
default:
propertyInfo.SetValue(res, value, null);
break;
}
}
}

标签:sourse,实体类,填充,res,value,DataGridView,DataRow,propertyInfo,null
From: https://www.cnblogs.com/yzlong520/p/18251718

相关文章

  • AcWing 738.数组填充(c++)
    题目描述输入一个整数V,输出一个长度为10的数组N,数组中的第一个元素为V,每个后续元素的值都为上一个元素的值的2倍。例如,如果输入整数为1,则数组为:1,2,4,8…输入格式输入一个整数V。输出格式输出数组中的所有元素,每个元素占一行。输出格式为N[i]=x,其中i为......
  • png填充底色
    classTest{/***填充底色**通过位运算,将所有色值转为不透明**@return新的图片*/publicBufferedImagefill(){ImageIO.write(tar,IMAGE_JPG,os);for(inty=image.getMinY(),h=image.getHeight();......
  • dataGridView控件和contextMenuStrip控件的结合使用
    效果展示: 0.在dataGridView控件中绑定 contextMenuStrip控件,设置ContextMenuStrip1. 设置 dataGridView选中类型为整行选中:SelectionMode:FullRowSelect不允许dataGridView一次能选择多个单元格:MultiSelect:Fale2.第二步再dataGridView控件中分别使用......
  • Mybatis 实体类中字段使用 ZonedDateTime,但达梦数据库使用无时区的 Timestamp 时发生
    背景开发的应用运行在东八区,无国际化需求,也无时区相关要求。后端使用SpringBoot和Mybatis,数据库使用达梦数据库,数据库中存储时间的类型为Timestamp(不存储时区信息)其中实体如下publicclassStudent{Stringid;ZonedDateTimeentryTime;}前端和后端约定时......
  • 如何应对缺失值带来的分布变化?探索填充缺失值的最佳插补算法
    本文将探讨了缺失值插补的不同方法,并比较了它们在复原数据真实分布方面的效果,处理插补是一个不确定性的问题,尤其是在样本量较小或数据复杂性高时的挑战,应选择能够适应数据分布变化并准确插补缺失值的方法。我们假设存在一个潜在的分布P,从中得出观察值X。此外,还绘制了一个与X相同......
  • Java 实体类之间的互相复制
    Java实体类之间的互相复制,一般可以通过以下几种方法实现:1.手动赋值:最简单的方法是通过手动为每个属性设置值来实现复制。但是在实际应用中,即使实体类属性较少,手动复制也很繁琐。2.BeanUtils:ApacheBeanUtils是一个常用的Java类库,可以用于快速实现JavaBean之间的互相赋值。......
  • 苍穹外卖笔记-06-菜品管理-菜品分类,公共字段填充
    菜品分类1菜品分类模块1.1需求分析与设计1.1.1产品原型1.1.2接口设计1.1.3表设计1.3代码实现1.4测试分类分页查询启用禁用分类修改分类信息新增菜品分类删除菜品分类2公共字段自动填充2.1问题分析2.2实现思路自定义注解AutoFill自定义切面AutoFillAspectMap......
  • C# 使用Newtonsoft.Json的JsonProperty设置返回的Json数据列名/C# 通过实体类序列化生
    原文链接:https://blog.csdn.net/weixin_44917045/article/details/103236167         https://blog.csdn.net/bazinga_y/article/details/134416680在写分页的时候,返回Json数据给前台的时候,数据不能出来,原因就是Json数据的列名是大写的,而页面需要的是小写的。......
  • 在 Excel 中使用 Python 自动填充公式
    安转Python包的国内镜像源清华大学https://pypi.tuna.tsinghua.edu.cn/simple阿里云https://mirrors.aliyun.com/pypi/simple/豆瓣https://pypi.douban.com/simple/百度云https://mirror.baidu.com/pypi/simple/中科大https://pypi.mirrors.ustc.edu.cn/simpl......
  • 如何在Ant-Design-Vue中实现动态表头并填充数据
    在现代前端开发中,基于Vue.js的AntDesignVue已经成为许多开发者构建高质量用户界面的首选工具之一。它提供了一整套丰富的UI组件,其中的Table组件广泛应用于数据展示和操作。本文将深入探讨如何在AntDesignVue中实现动态表头并填充数据,以满足复杂多变的业务需求。一、引言......