CSFramework对象模型框架(DbDataUpdate),支持MsSQL,MySQL,Oracle三种数据库操作
作者:作者不详  发布日期:2021/06/11 16:18:36
  CSFramework对象模型框架(DbDataUpdate),支持MsSQL,MySQL,Oracle三种数据库操作

CSFramework对象模型框架(DbDataUpdate),支持MsSQL,MySQL,Oracle三种数据库操作



DbDataUpdate简介


DbDataUpdate是CSFramework.DB基于ADO.NET多数据库底层组件包的一个通用工具类,能根据表结构映射的ORM实体对象模型自动提交数据,针对数据进行Add、Delete、Update操作,您不需要编写任何SQL脚本。支持MsSQL,MySQL,Oracle三种数据库。



DbDataUpdate组成



1. DbDataUpdate:CSFramework通用对象模型数据更新框架。


2. DbCommandGenerator: DbCommand命令生成器。

根据.NET对象模型(Type)类型自动生成三种DbCommand命令对象,支持MsSQL,MySQL,Oracle三种常用数据库。


3. DbDataUpdate依赖CSFramework.DB的IDatabase接口。



DbDataUpdate架构


csframework.db.体系架构


DbDataUpdate优势


1. 开发人员完全脱离ADO.NET底层组件的使用、接口使用。

2. 开发人员不需要编写任何Insert/Update/Delete SQL脚本,轻松实现对数据的增、删、改。

3. 开发人员根据表结构搭建对象实体模型(ORM-对象关系映射),然后调用相关接口即可。

4. 每个方法有详情注释。

5. 全部开源。



DbDataUpdate提供三种类型的接口



提供下图中三种接口方法,支持操作对象实体、DataTable以及DataSet,以及支持事务。


贴图图片-csframework-dataupdate2



源码位置:




贴图图片-csframework.db.dataupdate




DbDataUpdate测试案例:




贴图图片-CSFramework.DbDataUpdate对象模型框架



测试案例:提交DataTable,批量修改提交多条记录


C# Code:

//
//测试案例:提交DataTable,批量修改提交多条记录
//
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);

var dt = db.GetTable("SELECT TOP 10 * FROM dbo.sys_RegisterLog");
dt.Rows[
0]["HID"] = "修改HID";//修改一条记录
dt.Rows[1].Delete();//删除一条记录

var row = dt.Rows.Add();//新增一条记录
row["LicenseID"] = "xxxx";
row[
"RegisterNo"] = "xxxx";
row[
"RegisterTime"] = DateTime.Now;
row[
"LogConent"] = "xxxx";
row[
"HID"] = "xxxx";

//根据Model提交数据
int i = new DbDataUpdate(db).Update(dt, typeof(sys_RegisterLog), new string[] { "isid" }, new string[] { "isid" });

ShowResult($
"共更新记录数:{i}");

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




测试案例:修改对象列表,根据对象ORM自动存储到数据库



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
= new sys_AdminUser
{
  Account
= "000011",
  AccountName
= "test11",
  AccountType
= "xx111111111111111111",
  Password
= "pwd11111111"
  };
  
  sys_AdminUser user2
= new sys_AdminUser
  {
    Account
= "000022",
    AccountName
= "test22222222222",
    AccountType
= "xx222222222222222222",
    Password
= "pwd222222222"
    };
    
    List
<sys_AdminUser> list = new List<sys_AdminUser>();
    list.Add(user);
    list.Add(user2);
    
    
//修改对象列表
    
int i = new DbDataUpdate(db).UpdateList<sys_AdminUser>(list, new string[] { "Account" }, new string[] { "isid" });
    ShowResult($
"批量更新记录{i}");
    
    
//来源:C/S框架网 | www.csframework.com | QQ:23404761




测试案例:新增对象列表,根据对象ORM自动存储到数据库



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
= new sys_AdminUser
{
  Account
= "Test-" + DateTime.Now.ToString("yyMMddHHmmssfff"),
  AccountName
= "test",
  AccountType
= "xx",
  Password
= "pwd"
  };
  
  Thread.Sleep(
50);
  
  sys_AdminUser user2
= new sys_AdminUser
  {
    Account
= "Test-" + DateTime.Now.ToString("yyMMddHHmmssfff"),
    AccountName
= "test2",
    AccountType
= "xx",
    Password
= "pwd"
    };
    
    List
<sys_AdminUser> list = new List<sys_AdminUser>();
    list.Add(user);
    list.Add(user2);
    
    
//提交数据
    
int i = 0;
    DbTransaction tran
= db.TransBegin();
    DbDataUpdate updater
= new DbDataUpdate(db, tran);
    
try
    {
      i
= updater.AddList<sys_AdminUser>(list, new string[] { "isid" });
      
      tran.Commit();
    }
    
catch (Exception ex)
    {
      tran.Rollback();
      ShowResult(ex.Message);
    }
    
    ShowResult($
"共更新记录数:{i}");
    
    
//来源:C/S框架网 | www.csframework.com | QQ:23404761




测试案例:删除对象列表,根据对象ORM自动删除记录



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);

var isid = db.GetStringList("SELECT TOP 2 ISID FROM sys_RegisterLog");

sys_RegisterLog R1
= new sys_RegisterLog
{
  isid
= int.Parse(isid[0]),
  };
  
  sys_RegisterLog R2
= new sys_RegisterLog
  {
    isid
= int.Parse(isid[1]),
    };
    
    List
<sys_RegisterLog> list = new List<sys_RegisterLog>();
    list.Add(R1);
    list.Add(R2);
    
    
//删除一个对象列表
    
int i = new DbDataUpdate(db).DeleteList<sys_RegisterLog>(list, new string[] { "isid" });
    ShowResult($
"批量删除记录{i}");
    
    
//来源:C/S框架网 | www.csframework.com | QQ:23404761





CSFramework.DB数据库底层应用框架 v2.0

适用软件 适用软件:基于C#.NET开发的C/S系统、WebApi后端、Winform桌面应用软件。
运行平台 运行平台:Windows + .NET Framework 4.5
开发工具 开发工具:Visual Studio 2015,C#语言
数据库 数据库支持:MsSQL+Oracle+MySQL


CSFramework.DB数据库底层应用框架(MSSQL+Oracle+MySQL)


详情:http://www.csframework.com/cs-framework-database.htm


CSFramework.DB简介

  我们在开发软件过程中,特别是基于数据管理应用相关的系统,一般采用一种数据库,如Microsoft SQL Server,超大型系统有的使用Oracle,部分Web系统采用开源的MySQL等,由于各种业务场景以及用户需求,促使我们的数据库系统部署在不同类型的数据库服务器上。若开发的系统能支持多种数据库的快速切换,可以为我们减少很多烦恼,同时提高系统的适应性、兼容性以及可扩展性。


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

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



上一篇 下一篇