原创Winform快速开发框架平台Oracle版本(三层架构+C#.NET+Oracle数据库)
C/S架构 Winform快速开发框架平台Oracle版本V5.0 适用开发:制造、服务、零售、商贸等行业的ERP、MRP、MES、CRM、MIS、HIS、POS数据管理应用系统 运行平台:Windows + .NET Framework 4.5 开发工具:Visual Studio 2015+,C#语言 数据库:Microsoft SQLServer 2008R2+(支持多数据库:Oracle/MySql) 产品介绍 C/S系统开发框架旗舰版为软件团队提供强大的技术支撑以及快速开发能力,开发框架集成大量的通用开发包与工具实用类,提供丰富的例子,借助技术文档、网站资源、演示源码以及在线技术指导,用户能快速投入研发自己的项目。自2007年首发开发框架以来,我们成功积累了2000多位用户,其中包括数百家软件公司或大型集团企业。经过十年的产品迭代升级,最新旗舰版技术更成熟,性能更稳定,产出效率更高! 配套的代码生成器工具能自动生成界面(FORM)、业务层(BLL)、数据层(DAL)、模型(Model)、报表(Report)以及业务模块(Class Library DLL)的源代码,极大地提高开发效率、节约开发时间、降低项目成本。据多年项目实践统计,开发框架基本能完成项目大概60%以上的工作量。 C/S系统快速开发框架旗舰版V5.0(Ultimate Edition) Oracle版C/S系统快速开发框架旗舰版V5.0源码目录说明: 1. 软件授权注册系统Oracle版本数据库:CSFramework.Authorization.Oracle.db 2. 软件授权注册系统Oracle版本源码:CSFramework.Authorization-Source-Oracle 3. C/S 系统版本自动升级软件V1.0 Oracle版本源码:CSFrameworkV5.AutoUpgrader 4. 客户端主程序演示版源码:CSFrameworkV5.ClientDemo 5. 客户端主程序开发架构源码:CSFrameworkV5.ClientFoundation 6. C/S框架代码生成器Oracle版本源码:CSFrameworkV5.CodeGenerator 7. C/S框架核心类库:CSFrameworkV5.Core 8. 服务端源码:CSFrameworkV5.Server 9. 数据库连接工具Oracle版本:CSFrameworkV5.SqlConnector 导出Oracle数据库: SQL Code: --导出系统数据库 expdp YG01/test@orcl directory=DATA_PUMP_DIR dumpfile=YG01_20190627.DMP logfile=YG01.log schemas=YG01 --导出业务数据库 expdp YG02/test@orcl directory=DATA_PUMP_DIR dumpfile=YG02_20190627.DMP logfile=YG02.log schemas=YG02 用户:YG02,密码:test,对应业务数据库。 Oracle数据库备份文件: Winform C/S架构快速开发框架Oracle版本与SQL版本区别: 1. 数据库差异巨大,SQL语法,存储过程、视图、函数、数据类型等。 2. 字段名称大小写问题,.NET区分大小写,数据编辑组件绑定字段问题,比如GridColumn.FieldName。 3. 基于ADO.NET数据访问层改动,存储过程调用方式。 4. DbCommand参数差异,Oracle是":",SqlServer是"@" 5. 返回数据必须定义Cursor参数:REF CURSOR类型。 6. 获取服务器时间函数、GUID函数、触发器等有所不同。 7. 处理自增字段。Oracle没有自增字段类型(SqlServer是IDENTITY),因此需要使用触发器维护自增字段。 8. Oracle内部权限机制控制用户数据查询,sp_SetContext存储过程。 Oracle存储过程参考: SQL Code: CREATE OR REPLACE PROCEDURE sp_QueryOutstandingAP( v_InvoiceNo VARCHAR2, --发票编号,用于查询单张发票的Outstanding v_SupplierCode VARCHAR2,--客户编号 v_FromDate VARCHAR2, --起始日期:YYYYMMDD v_ToDate VARCHAR2, --结束日期1:YYYYMMDD v_EndDate VARCHAR2, --结束日期2:YYYYMMDD Pkg_Return1 Out Pkg_Retern.Pkg_Return ) AS BEGIN --sql代码段,省略。。。。 END; //来源:C/S框架网(www.csframework.com) QQ:23404761 注意:若要返回多张表,需要定义多个Pkg_Return参数,如:Pkg_Return1, Pkg_Return2等等... Oracle存储过程返回资料表的Pkg_Retern.Pkg_Return包(package)类型定义: SQL Code: create or replace package PKG_RETERN is TYPE tb_MyUser IS REF CURSOR; TYPE pkg_return IS REF CURSOR; TYPE pkg_return1 IS REF CURSOR; TYPE pkg_return2 IS REF CURSOR; TYPE pkg_return3 IS REF CURSOR; end PKG_RETERN; //来源:C/S框架网(www.csframework.com) QQ:23404761 Oracle版本数据访问层调用存储过程实例: C# Code: /// <summary> /// 按条件从申购单主表获取数据 /// </summary> public System.Data.DataTable Query(QueryBusinessBase P) { CommandHelper sp = _Database.CreateSqlProc("usp_IO_Search"); sp.AddParam("v_DocNoFrom", DbType.String, P.DocNoFrom); sp.AddParam("v_DocNoTo", DbType.String, P.DocNoTo); sp.AddParam("v_DocDateFrom", DbType.DateTime, ConvertEx.ToSqlDateTime(P.DocDateFrom)); sp.AddParam("v_DocDateTo", DbType.DateTime, ConvertEx.ToSqlDateTime(P.DocDateTo)); if (Globals._IsOracle) sp.AddParamOracleCursor("Pkg_Return1"); return _Database.GetTable( sp.Command, tb_IO.__TableName); } //来源:C/S框架网(www.csframework.com) QQ:23404761 CSFramework.DB组件OracleDatabase类的SetContext方法: C# Code: /// <summary> /// Oracle内部权限机制控制用户数据查询 /// </summary> /// <param name="connection"></param> /// <returns></returns> public int SetContext(OracleConnection connection) { try { OracleCommand cmd = new OracleCommand("sp_SetContext"); cmd.Connection = connection; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("In_Userid", DatabaseOracle.CurrentUserID); int iValue = cmd.ExecuteNonQuery(); return iValue; } catch (System.Exception ex) { throw ex; } } //来源:C/S框架网(www.csframework.com) QQ:23404761 Oracle sp_SetContext存储过程: SQL Code: CREATE OR REPLACE PROCEDURE sp_SetContext(In_Userid VARCHAR2) IS v_UserID VARCHAR2(20); v_IsRoot VARCHAR2(10); v_schema varchar2(50); begin select SYS_CONTEXT('USERENV', 'SESSION_USER') into v_schema from dual; if v_schema = 'DBUSRSYS' then return; end if; pkg_Context.Set_Context('UserID', Nvl(In_Userid,'99999')); pkg_Context.Set_Context('ISALL',v_IsRoot); END sp_SetContext; //来源:C/S框架网(www.csframework.com) QQ:23404761 PACKAGE YG01.pkg_CONTEXT: SQL Code: CREATE OR REPLACE PACKAGE YG01.pkg_CONTEXT IS --建立Context […] --Create OR REPLACE context ERP_CONTEXT using PKG_CONTEXT ;-- ACCESSED GLOBALLY --查询Context --SELECT Sys_Context('ERP_CONTEXT','TYPE') FROM DUAL; PROCEDURE Set_Context(In_Conditionid IN VARCHAR2, In_Conditionvalue IN VARCHAR2); END; //来源:C/S框架网(www.csframework.com) QQ:23404761 创建OracleConnection调用SetContext: C# Code: DbConnection connection = null; try { if (cmd.Connection == null) { cmd.Connection = CreateConnection(); SetContext(cmd.Connection as OracleConnection); } return cmd.ExecuteReader(); } finally { Close(connection); } //来源:C/S框架网(www.csframework.com) QQ:23404761 上面部分代码来自CSFramework.DB组件。 扫一扫加微信:
参考文档:
原创ERP系统开发平台|基于C#.NET打造的C/S系统快速开发框架 Winform快速开发框架之权限系统设计(2) - 功能模块介绍 Winform快速开发框架之存储图片资源解决方案|C/S框架网 NET开发框架,基于ADO.NET数据持久化快速开发框架平台-C/S框架网原创产品 WebApi快速开发框架,C# ASP.NET后端开发平台 Winform快速开发框架平台代码生成器核心优势 【原创】C# Winform进销存系统快速开发框架 【原创】进销存软件开发模板基于C/S架构快速开发框架C#+Winform+DevExpress 【原创产品】自己开发MES系统软件,MES开发架构及MES客户端快速开发框架平台 Winform快速开发框架-表格支持用户自定义样式(自由配置列栏目) C# Winform软件快速开发框架|软件开发平台 - 界面多语言实现原理 原创C/S架构开源软件 - C#.NET+Winform+Dev+SQL快速开发框架 Winform企业级WCF快速开发框架平台(C/S架构+WCF+DevExpress+SQL多数据库) 基于C/S架构轻量级快速开发框架软件开发平台(C#+ADO.NET+EF) 数据库信息管理开发平台 - C/S结构+Winform+ADO.NET快速开发框架
其它资料:
什么是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内容管理系统 | |