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架构

DbDataUpdate优势
1. 开发人员完全脱离ADO.NET底层组件的使用、接口使用。
2. 开发人员不需要编写任何Insert/Update/Delete SQL脚本,轻松实现对数据的增、删、改。
3. 开发人员根据表结构搭建对象实体模型(ORM-对象关系映射),然后调用相关接口即可。
4. 每个方法有详情注释。
5. 全部开源。
DbDataUpdate提供三种类型的接口
提供下图中三种接口方法,支持操作对象实体、DataTable以及DataSet,以及支持事务。

源码位置:

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
//测试案例:提交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自动存储到数据库
//
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自动存储到数据库
//
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
//测试案例:删除对象列表,根据对象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
详情:http://www.csframework.com/cs-framework-database.htm
CSFramework.DB简介
我们在开发软件过程中,特别是基于数据管理应用相关的系统,一般采用一种数据库,如Microsoft SQL Server,超大型系统有的使用Oracle,部分Web系统采用开源的MySQL等,由于各种业务场景以及用户需求,促使我们的数据库系统部署在不同类型的数据库服务器上。若开发的系统能支持多种数据库的快速切换,可以为我们减少很多烦恼,同时提高系统的适应性、兼容性以及可扩展性。

参考文档:
CSFramework通用自动提交数据工具类(DbDataUpdate),支持MsSQL,MySQL,Oracle三种数据库
DbFramework数据库实体类对象模型框架( 支持MsSQL,MySQL,Oracle三种数据库)|C/S开发框架
DbFramework数据库实体类对象模型框架( 支持MsSQL,MySQL,Oracle三种数据库)
CSFramework.WebApi支持多种常用数据库(Mssql/MySQL/Oracle)|C/S开发框架
最新修改:DAL层支持MySQL/MsSQL/Oracle三种数据库
CSFramework.DB基于ADO.NET多数据库底层组件包(MSSQL+Oracle+MySQL)
C#多数据库组件包支持MSSQL+Oracle+MySQL+用户操作手册|C/S框架网
CSFramework.EF数据库框架|支持多种数据库SqlServer/MySQL/Oracle
企业版V4.0 - 支持MSSQL、MySQL、Oracle三种类型的数据库
CSFramework框架数据库备份还原操作手册(MySql/Oracle/SqlServer/达梦)|C/S开发框架
C# C/S架构软件自动升级程序Winform+多数据库(MySQL,MsSQL,Oracle)-C/S开发框架
C# C/S架构软件自动升级程序Winform+多数据库(MySQL,MsSQL,Oracle)
CSFramework.DB多数据库支持组件DbDataUpdate.UpdateObject详解
C#.NET Winform轻量级UI框架软件快速开发平台(MySQL, Oracle, MsSQL)
EntityFramework通用DbContext类,支持动态实体模型,多数据库(MySQL,SqlServer,Oracle)
CSFrameworkV6软件开发平台主流数据库测试报告(SqlServer/MySql/Oracle/达梦)|C/S开发框架
CSFramework通用自动提交数据工具类(DbDataUpdate),支持MsSQL,MySQL,Oracle三种数据库
DbFramework数据库实体类对象模型框架( 支持MsSQL,MySQL,Oracle三种数据库)|C/S开发框架
DbFramework数据库实体类对象模型框架( 支持MsSQL,MySQL,Oracle三种数据库)
CSFramework.WebApi支持多种常用数据库(Mssql/MySQL/Oracle)|C/S开发框架
最新修改:DAL层支持MySQL/MsSQL/Oracle三种数据库
CSFramework.DB基于ADO.NET多数据库底层组件包(MSSQL+Oracle+MySQL)
C#多数据库组件包支持MSSQL+Oracle+MySQL+用户操作手册|C/S框架网
CSFramework.EF数据库框架|支持多种数据库SqlServer/MySQL/Oracle
企业版V4.0 - 支持MSSQL、MySQL、Oracle三种类型的数据库
CSFramework框架数据库备份还原操作手册(MySql/Oracle/SqlServer/达梦)|C/S开发框架
C# C/S架构软件自动升级程序Winform+多数据库(MySQL,MsSQL,Oracle)-C/S开发框架
C# C/S架构软件自动升级程序Winform+多数据库(MySQL,MsSQL,Oracle)
CSFramework.DB多数据库支持组件DbDataUpdate.UpdateObject详解
C#.NET Winform轻量级UI框架软件快速开发平台(MySQL, Oracle, MsSQL)
EntityFramework通用DbContext类,支持动态实体模型,多数据库(MySQL,SqlServer,Oracle)
CSFrameworkV6软件开发平台主流数据库测试报告(SqlServer/MySql/Oracle/达梦)|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内容管理系统 |
在线客服
