C#.NET调用达梦数据库的存储过程返回多张表|C/S开发框架

C#.NET调用达梦数据库的存储过程返回多张表
目录
要点
- 存储过程定义 OUT SYS_REFCURSOR 参数,每个OUT参数对应一个结果集;
- .NET调用存储过程,需要创建 DmDbType.Cursor 参数用于接收结果集;
创建结果集参数:
C# 全选
var p = base.CreateParameter(item.ParamName, null, DbType.Object, ParameterDirection.Output) as DmParameter;
p.DmSqlType = DmDbType.Cursor;//OUT 游标参数测试用的存储过程
单表 _Test_Product_Search - 产品资料
C# 全选
CREATE OR REPLACE PROCEDURE "CSFrameworkV6_Normal"."_Test_Product_Search"
(
productCode IN VARCHAR(50)=null,
productName IN VARCHAR(50)=null,
category IN VARCHAR(50)=null,
barcode IN VARCHAR(50)=null,
result1 OUT SYS_REFCURSOR
)
AS
BEGIN
-- 打开第一个结果集
OPEN result1 FOR SELECT top 10 * FROM "dt_Product" WHERE 1=1;
-- 打开第二个结果集
-- OPEN result2 FOR SELECT top 10 * FROM 表;
END;多表 _Test_INV_Search - 销售发票
C# 全选
CREATE OR REPLACE PROCEDURE "CSFrameworkV6_Normal"."_Test_INV_Search"
(
INVNO IN VARCHAR(50)=null,
CustomerCode IN VARCHAR(50)=null,
PayType IN VARCHAR(50)=null,
barcode IN VARCHAR(50)=null,
result1 OUT SYS_REFCURSOR,
result2 OUT SYS_REFCURSOR
)
AS
BEGIN
-- 打开第一个结果集
OPEN result1 FOR SELECT top 10 * FROM "tb_IV" WHERE 1=1;
-- 打开第二个结果集
OPEN result2 FOR SELECT top 100 * FROM "tb_IVs" WHERE "IVNO" IN (SELECT TOP 10 "IVNO" FROM "tb_IV");
END;测试存储过程
单表 _Test_Product_Search
C# 全选
schema = "CSFrameworkV6_Normal";
var db2 = DatabaseFactory.GetDatabase(DatabaseType.DaMeng, connStr, schema);
var p1 = db2.CreateParameter("PRODUCTCODE", "A01");
var p2 = db2.CreateParameter("PRODUCTNAME", "ABC");
var ds = db2.GetDataSet("_Test_Product_Search", CommandType.StoredProcedure, p1, p2);
ShowGrid(ds.Tables[0]);
多表 _Test_INV_Search
C# 全选
var p1 = db2.CreateParameter("INVNO", "A01");
var p2 = db2.CreateParameter("CUSTOMERCODE", "ABC");
var ds = db2.GetDataSet("_Test_INV_Search", CommandType.StoredProcedure, p1, p2);
达梦存储过程返回多个结果集 - 员工档案
C# 全选
CREATE OR REPLACE PROCEDURE "CSFrameworkV6_Normal"."usp_EmployeeQueryReportData"
(
InfoID IN VARCHAR(100),
result1 OUT SYS_REFCURSOR,
result2 OUT SYS_REFCURSOR
)
AS
BEGIN
OPEN result1 FOR
SELECT e.*,
ec."ContractNo",
ec."ValidateDateBegin",
ec."ValidateDateEnd",
epa."DeptAfter",--最新部门
DATEDIFF(DAY,e."Birthday",SYSDATE) AS Ages, --年龄
DATEDIFF(DAY,e."EntryFactoryDate",SYSDATE) AS WorkYears --连续工龄
FROM "dt_Employee" as e
left join "dt_EmployeeContract" as ec on e."InfoID"=ec."InfoID"
left join "dt_EmployeePositionAdjustment" as epa on e."InfoID"=epa."InfoID"
WHERE e."InfoID"=InfoID
ORDER BY ec."CreationDate",epa."CreationDate" DESC;
OPEN result2 FOR SELECT * FROM "dt_EmployeeContract" WHERE "InfoID"=InfoID;
END;
参考文档:
FastReport.NET自动文本宽度+自动换行+自动行高|C/S开发框架
FastReport.NET2023破解版去除水印DEMO VERSION (2025.1.14/2023.2.18版本)|C/S开发框架
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
.NET C/S架构软件用户授权设计方案(mac地址+白名单用户)|C/S开发框架
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
.NETCore WebApi运行报错:System.AggregateException:“Some services are not able to be constructed|C/S开发框架
C#.NET各版本常用语法糖大全(C#3~C#10)|C/S开发框架
CSFramework.EF数据库框架应用Schema测试多种数据库(.NET8+EFCore)|C/S开发框架
CSFrameworV6试用版开发指南 | 主程序初始化CSFramework.EF数据库框架(.NET8)|C/S开发框架
.NET Reactor(.NET混淆器)加壳软件使用|C/S开发框架
CSFramework开发框架使用.NET Reactor加壳软件导致多语言失效|C/S开发框架
.NETCore WebApi后端开发框架+达梦数据库测试报告|C/S开发框架
C#.NET 达梦数据库存储过程 获取OUT参数返回值|C/S开发框架
SqlServer数据类型、DbType类型、.NET类型与达梦数据类型关系表|C/S开发框架
.NET8 .NETCore运行环境下载|C/S开发框架
.NET7 .NETCore运行环境下载|C/S开发框架
FastReport.NET自动文本宽度+自动换行+自动行高|C/S开发框架
FastReport.NET2023破解版去除水印DEMO VERSION (2025.1.14/2023.2.18版本)|C/S开发框架
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
.NET C/S架构软件用户授权设计方案(mac地址+白名单用户)|C/S开发框架
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
.NETCore WebApi运行报错:System.AggregateException:“Some services are not able to be constructed|C/S开发框架
C#.NET各版本常用语法糖大全(C#3~C#10)|C/S开发框架
CSFramework.EF数据库框架应用Schema测试多种数据库(.NET8+EFCore)|C/S开发框架
CSFrameworV6试用版开发指南 | 主程序初始化CSFramework.EF数据库框架(.NET8)|C/S开发框架
.NET Reactor(.NET混淆器)加壳软件使用|C/S开发框架
CSFramework开发框架使用.NET Reactor加壳软件导致多语言失效|C/S开发框架
.NETCore WebApi后端开发框架+达梦数据库测试报告|C/S开发框架
C#.NET 达梦数据库存储过程 获取OUT参数返回值|C/S开发框架
SqlServer数据类型、DbType类型、.NET类型与达梦数据类型关系表|C/S开发框架
.NET8 .NETCore运行环境下载|C/S开发框架
.NET7 .NETCore运行环境下载|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内容管理系统 |
在线客服
