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")]
//[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
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");
//测试案例:修改对象,根据对象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
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" };//忽略的字段列表,比如自增字段、时间戳等。
string[] PKFields = new string[] { "isid" };//主键字段
string[] ignoreFields = new string[] { "isid", "Account" };//忽略的字段列表,比如自增字段、时间戳等。
//指定忽略更新的字段
bool ok1 = new DbDataUpdate(db).UpdateObject(user, PKFields, ignoreFields);
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参数可以不传值)
string[] PKFields = new string[] { "isid" };//主键字段
string[] updateFields = new string[] { "AccountName", "Amount" };//指定提交数据的字段(ignoreFields参数可以不传值)
//指定更新的字段
bool ok2 = new DbDataUpdate(db).UpdateObject(user, PKFields, null, updateFields);
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参数可以不传值)
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);
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
//来源: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
/// 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

参考文档:
TableInfoAttribute、KeyField、IgnoreField特性详解|C/S开发框架
CSFramework.DB多数据底层类库 - 操作对象数据DbDataUpdate接口测试
详解DevExpress.LookUpEdit控件实现自动搜索定位功能|C/S开发框架
达梦数据库数据类型详解
.NET8 WebApi框架接口认证方式:Bearer Token/Jwt Token详解|C/S开发框架
DevExpress XtraReport 开发指南|单表报表设计详解(C#)|C/S开发框架
FastReport.NET2023报表数据源配置详解|C/S开发框架
C# Math.Round方法MidpointRounding参数详解|C/S开发框架
CSFramework.DB 增加 IDatabaseExtensions扩展类|C/S开发框架
CSFramework.DB数据库底层框架 | DbFramework实体模型框架|C/S开发框架
CSFramework.DB 应用场景|C/S开发框架
CSFramework.DB 功能介绍|C/S开发框架
CSFramework.DB 软件简介|C/S开发框架
DatabaseProvider类详解|C/S开发框架
UserConfig类详解 | Winform 蝇量级开发框架|C/S开发框架
DataDictCache | 全局缓存设计逻辑详解|C/S开发框架
TableInfoAttribute、KeyField、IgnoreField特性详解|C/S开发框架
CSFramework.DB多数据底层类库 - 操作对象数据DbDataUpdate接口测试
详解DevExpress.LookUpEdit控件实现自动搜索定位功能|C/S开发框架
达梦数据库数据类型详解
.NET8 WebApi框架接口认证方式:Bearer Token/Jwt Token详解|C/S开发框架
DevExpress XtraReport 开发指南|单表报表设计详解(C#)|C/S开发框架
FastReport.NET2023报表数据源配置详解|C/S开发框架
C# Math.Round方法MidpointRounding参数详解|C/S开发框架
CSFramework.DB 增加 IDatabaseExtensions扩展类|C/S开发框架
CSFramework.DB数据库底层框架 | DbFramework实体模型框架|C/S开发框架
CSFramework.DB 应用场景|C/S开发框架
CSFramework.DB 功能介绍|C/S开发框架
CSFramework.DB 软件简介|C/S开发框架
DatabaseProvider类详解|C/S开发框架
UserConfig类详解 | Winform 蝇量级开发框架|C/S开发框架
DataDictCache | 全局缓存设计逻辑详解|C/S开发框架
其它资料:
什么是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内容管理系统 |
什么是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内容管理系统 |
在线客服
