CSFramework.DB多数据库支持组件DbDataUpdate.UpdateObject详解


  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 { getset; }
  
  
public TableInfoAttribute(string tableName)
  {
    
this.TableName = tableName;
  }
  
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761






C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:Winform开发框架代码生成器 - 支持生成输入组件自适应窗体(LayoutControl)
下一篇:Winform界面自适应快速开发框架(C#+Dev+三层架构+多数据库支持)
评论列表

发表评论

评论内容
昵称:
关联文章

CSFramework.DB数据库支持组件DbDataUpdate.UpdateObject详解
CSFramework.DB数据底层类库(IDatabase/DbDataUpdate)接口测试报告
CSFramework.DB开源组件
CSFramework.DB数据底层类库 - 操作对象数据DbDataUpdate接口测试
CSFramework通用自动提交数据工具类(DbDataUpdate),支持MsSQL,MySQL,Oracle三种数据库
CSFramework.DB基于ADO.NET数据库底层组件包(MSSQL+Oracle+MySQL)
CSFramework对象模型框架(DbDataUpdate),支持MsSQL,MySQL,Oracle三种数据库操作
CSFramework.DB数据库底层框架 - DbFramework实体模型框架
C#数据库组件支持MSSQL+Oracle+MySQL+用户操作手册|C/S框架网
CSFramework.DB架构图
CSFramework.DB 功能介绍
CSFramework.DB 软件简介
CSFramework.DB 运行环境
CSFramework.DbDataUpdate数据模型框架 - 特殊数据类型测试报告
DbFramework数据库实体类对象模型框架( 支持MsSQL,MySQL,Oracle三种数据库
CSFramework.DB数据底层类库测试程序(测试报告-2021)
数据库支持 - MiniFramework - 蝇量级开发框架
CSFramework.DB 应用场景
IDbMetalQuery:CSFramework.DB数据库底层元数据接口
CSFramework旗舰版语言支持两种存储策略:XML文件及SQL数据库