CSFramework.DB多数据库支持组件DbDataUpdate.UpdateObject详解
CSFramework.DB多数据库支持组件DbDataUpdate.UpdateObject详解
CSFramework.DB多数据库支持组件DbDataUpdate.UpdateObject详解 测试用 sys_AdminUser 模型: C# Code: //指定表名,比如MySQL所有表名默认是小写,Oracle全大写 //[TableInfoAttribute("sys_adminuser")] //[TableInfoAttribute("sys_AdminUser")] [TableInfoAttribute("SYS_ADMINUSER")] public class sys_AdminUser { public int isid { get; set; } public string AccountType { get; set; } public string Account { get; set; } public string AccountName { get; set; } public string Password { get; set; } public string FlagLock { get; set; } public DateTime LastLoginTime { get; set; } public int LoginCount { get; set; } public decimal Amount { get; set; } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 从数据库查询一条用户数据并存储到user对象: C# Code: // //测试案例:修改对象,根据对象ORM自动存储到数据库 // string conn = "Data Source=127.0.0.1;Initial Catalog=CSFramework_License;User ID=sa;Password =test;Persist Security Info=True;Connect Timeout=15;"; IDatabase db = DatabaseFactory.CreateDatabase(DatabaseType.SqlServer, conn); //从数据库获取对象,最新数据 sys_AdminUser user = db.ExecuteReader<sys_AdminUser>("SELECT * FROM sys_AdminUser where isid=49"); //修改数据 user.AccountName = "修改用户名称"; user.LoginCount = 111999; user.Amount = decimal.Parse("111999.99"); //来源:C/S框架网 | www.csframework.com | QQ:23404761 测试案例(三种测试场景): 1. 指定忽略更新的字段(ignoreFields) C# Code: string[] PKFields = new string[] { "isid" };//主键字段 string[] ignoreFields = new string[] { "isid", "Account" };//忽略的字段列表,比如自增字段、时间戳等。 //指定忽略更新的字段 bool ok1 = new DbDataUpdate(db).UpdateObject(user, PKFields, ignoreFields); 生成的SQL: SQL Code: UPDATE SYS_ADMINUSER SET AccountType=@AccountType,AccountName=@AccountName,Password=@Password,FlagLock=@FlagLock,LastLoginTime=@LastLoginTime,LoginCount=@LoginCount,Amount=@Amount WHERE isid=@isid 2. 指定更新的字段(updateFields) C# Code: string[] PKFields = new string[] { "isid" };//主键字段 string[] updateFields = new string[] { "AccountName", "Amount" };//指定提交数据的字段(ignoreFields参数可以不传值) //指定更新的字段 bool ok2 = new DbDataUpdate(db).UpdateObject(user, PKFields, null, updateFields); 生成的SQL: SQL Code: UPDATE SYS_ADMINUSER SET AccountName=@AccountName,Amount=@Amount WHERE isid=@isid 3. 指定忽略更新+更新的字段,此方案ignoreFields参数无效(程序不处理) C# Code: string[] PKFields = new string[] { "isid" };//主键字段 string[] ignoreFields = new string[] { "isid", "Account" };//忽略的字段列表,比如自增字段、时间戳等。 string[] updateFields = new string[] { "AccountName", "Amount" };//指定提交数据的字段(ignoreFields参数可以不传值) //指定忽略更新+更新的字段,此方案ignoreFields参数无效(程序不处理) bool ok3 = new DbDataUpdate(db).UpdateObject(user, PKFields, ignoreFields, updateFields); 生成的SQL: SQL Code: UPDATE SYS_ADMINUSER SET AccountName=@AccountName,Amount=@Amount WHERE isid=@isid //来源:C/S框架网 | www.csframework.com | QQ:23404761 TableInfoAttribute ORM模型的特性定义: C# Code: /// <summary> /// ORM模型的特性,用于指定该模型对应的表名 /// </summary> public class TableInfoAttribute : Attribute { /// <summary> /// 表名 /// </summary> public string TableName { get; set; } public TableInfoAttribute(string tableName) { this.TableName = tableName; } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 扫一扫加作者微信
参考文档:
CS开发框架对大并发大数据量以及多数据库的支持方案是怎样的? C#多数据库组件包支持MSSQL+Oracle+MySQL+用户操作手册|C/S框架网 CSFramework.DB基于ADO.NET多数据库底层组件包(MSSQL+Oracle+MySQL) CSFramework通用自动提交数据工具类(DbDataUpdate),支持MsSQL,MySQL,Oracle三种数据库 CSFramework.DB多数据底层类库测试程序(测试报告-2021) CSFramework.DB多数据底层类库 - 操作对象数据DbDataUpdate接口测试 CSFramework.DB多数据底层类库(IDatabase/DbDataUpdate)接口测试报告 CSFramework对象模型框架(DbDataUpdate),支持MsSQL,MySQL,Oracle三种数据库操作 Winform企业级WCF快速开发框架平台(C/S架构+WCF+DevExpress+SQL多数据库) Winform界面自适应快速开发框架(C#+Dev+三层架构+多数据库支持) DbFramework数据库实体类对象模型框架( 支持MsSQL,MySQL,Oracle三种数据库) 基于集团组织架构数据权限系统快速开发框架(C#.NET Winform+支持多数据库) 测试CSFramework.DB数据底层组件IDatabase.GetTop方法(Mssql/MySql) C# C/S架构软件自动升级程序Winform+多数据库(MySQL,MsSQL,Oracle) CSFramework.DB数据库组件SQL并发测试压力测试报告
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |