c# 将数据库中值一次赋给MODEL

2024-01-08 03:48

本文主要是介绍c# 将数据库中值一次赋给MODEL,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 /// <summary>

        /// DataTable中的每一列赋值给model中的同名属性

        /// DataTable中只有一行数据

        /// </summary>

        /// <typeparam name="T">泛型:model的类型</typeparam>

        /// <param name="objmodel">model的实例</param>

        /// <param name="dtInfo">DataTable表</param>

        public static void TableToModel<T>(T objmodel, DataTable dtInfo)

        {

            //获取model的类型

            Type modelType = typeof(T);

 

            //获取model中的属性

            PropertyInfo[] modelpropertys = modelType.GetProperties();

 

            //遍历DataTable的每一列

            for (Int32 i = 0; i < dtInfo.Columns.Count; i++)

            {

                //遍历model的每一个属性

                foreach (PropertyInfo pi in modelpropertys)

                {

                    String name = pi.Name;  //获取属性名称

                    //若model属性名称与表中的列名相同

                    if (name == dtInfo.Columns[i].ColumnName)

                    {

                        object value = null ;

                        //获取表中该列对应的数据

                        if (dtInfo.Columns[i].DataType == typeof(string))

                        {

                            if (dtInfo.Rows[0][i] == System.DBNull.Value)

                                value = Convert.ToString(null);

                            else

                            value = dtInfo.Rows[0][i].ToString();

                        }

                        

                        //判断是否为bool类型

                        if (dtInfo.Columns[i].DataType == typeof(bool))

                        {

 

                            if (dtInfo.Rows[0][i] == System.DBNull.Value)

                                value = Convert.ToBoolean(null);

                            else

                                value = Convert.ToBoolean(dtInfo.Rows[0][i]);

                        }

                        //判断是否为DateTime类型

                        else if (dtInfo.Columns[i].DataType == typeof(DateTime) )

                        {

                            if (dtInfo.Rows[0][i] == System.DBNull.Value)

                                value = Convert.ToDateTime(null);

                            else

                            value = Convert.ToDateTime(dtInfo.Rows[0][i]);

                        }

                        //判断是否为int类型

                        else if (dtInfo.Columns[i].DataType == typeof(int) )

                        {

                            

                            if (dtInfo.Rows[0][i] == System.DBNull.Value)

                                value = Convert.ToInt32(null);

                            else

                            value = Convert.ToInt32(dtInfo.Rows[0][i]);

                        }

                        //判断是否为float类型

                        else if (dtInfo.Columns[i].DataType == typeof(Double) )

                        {

                            

                            

                            if (dtInfo.Rows[0][i] == System.DBNull.Value)

                                value = Convert.ToDouble(null);    

                                //value = float.Parse(null);

                            else

                                value = Convert.ToDouble(dtInfo.Rows[0][i]);

                                //value = float.Parse(dtInfo.Rows[0][i].ToString());

 

                        }

                        //将表中该列下的数据赋值给model中的同名属性

                        modelType.GetProperty(name).SetValue(objmodel, value, null);

                    }

                }

            }

        }

 

 

调用方法TableToModel<Recurrencecs>(Conf.currentPatient.recurrencecs, dtrecurrencecs);

这篇关于c# 将数据库中值一次赋给MODEL的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/582225

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳