【学习笔记】C#执行存储过程传入参数并返回output参数和return_value的方法

C#调用SQL中的存储过程中有output参数 Alter proc Sp_AutoTenderTrialAll @isAuto int , @id int, @AdminId int , @AdminName varchar(250), @output int output as Begin    set  @output=1 end /*************C#************/  using 阅读详情

1.存储过程

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		fangpan
-- Create date: 2012-2-1
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[ECSS30_Stat]
@BeginTime DATETIME,
@EndTime DATETIME,
@Count int OUTPUT
AS
BEGIN
	SET NOCOUNT ON;
	
	--1.创建临时表
	IF OBJECT_ID('TEMPDB..#TEMP_FANGPAN')IS NOT NULL
	DROP TABLE #TEMP_FANGPAN
	CREATE TABLE #TEMP_FANGPAN(
	[UserContent] [varchar](256),
	[RecTime] [datetime],
	[RecResult] [char](1),
	[RecResultCode] [varchar](32),
	[RecResultDesc] [varchar](256),
	[SubRecType] [varchar](16),
	[RecBizName] [varchar](32),
	[RecOperationName] [varchar](16)
	)
	
	--2.筛选识别失败数据插入临时表
	INSERT INTO #TEMP_FANGPAN(
	[UserContent],
	[RecTime],
	[RecResult],
	[RecResultCode],
	[RecResultDesc],
	[SubRecType],
	[RecBizName],
	[RecOperationName]
	)
	select a.[UserContent],
	a.[RecTime],
	a.[RecResult],
	a.[RecResultCode],
	a.[RecResultDesc],
	a.[SubRecType],
	a.[RecBizName],
	a.[RecOperationName]
	from dbo.LogRec_Route a
	where [RecResult]='0'

	--3.统计
	select @Count=COUNT(*) FROM #TEMP_FANGPAN
	where [RecTime]>=@BeginTime
	and [RecTime]<=@EndTime
	and [RecResultCode]='RouteResult_Items_IsNull'
	IF @Count!=0
	RETURN 1
	ELSE
	RETURN 0
END

2.执行存储过程

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Collections;
namespace READDATA
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnection conn = new SqlConnection("User ID=sa;Initial Catalog=ECSS20_logtest_AHMobile;Data Source=192.168.85.76;Password=ctitest");
            conn.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "ECSS30_Stat";
            cmd.CommandType = CommandType.StoredProcedure;
            IDataParameter[] parameters={
                new SqlParameter("@BeginTime",SqlDbType.DateTime),
                new SqlParameter("@EndTime",SqlDbType.DateTime),
                new SqlParameter("@Count",SqlDbType.Int),
                new SqlParameter("return_value",SqlDbType.Int)
            };
            parameters[0].Value = "2011-01-01";
            parameters[1].Value = "2012-02-01";
            parameters[2].Direction = ParameterDirection.Output;
            parameters[3].Direction = ParameterDirection.ReturnValue;
            cmd.Parameters.AddRange(parameters);
            cmd.ExecuteNonQuery();
            conn.Close();
            Console.WriteLine("@Count:" + parameters[2].Value);
            Console.WriteLine("return_value:" + parameters[3].Value);
            Console.ReadKey();
        }
    }
}


存储过程输出参数、返回值、返回表及C#调用 存储过程中可以定义输出变量,返回值,执行存储过程还能获得结果集。每个存储过程的默认返回值为0。下面紧接着上文 SQL Server中存储过程Stored Procedure创建及C#调用 基础上写的一个新的Stored Procedure存储过程则包含了输出参数、返回值以及select结果。USE [db] GO /****** Object: StoredProcedure [dbo].[ins 阅读详情

相关推荐

存储过程与函数实战指南:从概念到MySQL应用与性能优化

在数据库开发中,代码复用与逻辑封装是提升效率和维护性的核心需求。存储过程与函数作为数据库端的预编译程序单元,其原理在于将一组SQL语句封装为可重复调用的模块,从而减少代码冗余、降低网络开销并增强数据安全性。从技术价值看,它们不仅能够提升复杂操作的执行效率,还能实现更精细的权限控制,是后端开发和数据处理的利器。在应用场景上,存储过程适用于封装事务性业务逻辑和批量数据处理,而存储函数则专注于计算并返回单一值,常用于查询中的数据处理与转换。本文以MySQL为例,深入解析存储过程与函数的创建、调用及高级特性,涵盖游

张 作强 BLOG 494

Command调用存储过程Output参数

如果再不写点东西,害怕自己以后再也不会写程序了,很久没有更新BLOG了,作为即将失去九月的几年还是摘录一篇稿子中的东西吧——关于Command对象的,主要是关于参数的问题,Command对象参数输入输出,以及获取的方式。 每个Command对象都有一个Parameters属性。这个属性有一个SqlParameterCollection或OleDbParameterCollection对...

dba5032的博客 349

SQL Server参数化查询:原理、实现与性能优化实战

参数化查询是关系型数据库防范SQL注入、提升执行计划复用率的核心机制,其本质在于将SQL逻辑与数据在编译期严格分离。它依托SQL Server的参数绑定、执行计划缓存和参数嗅探等底层原理,带来安全性增强、索引高效利用及CPU资源节省等关键技术价值。广泛应用于存储过程开发、动态报表查询、.NET应用层数据访问(ADO.NET/EF Core)以及云原生跨库场景。本文聚焦SQL Server平台,深入解析sp_executesql、存储过程、ORM集成等四大实现路径,并结合参数类型声明、执行计划诊断、生产监控等

unixboy 442

C#获取存储过程的Return返回值和Output输出参数值

 1.获取Return返回值 程序代码//存储过程//Create PROCEDURE MYSQL//     @a int,//     @b int//AS//     return @a + @b//GOSqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlSe

1065

从 C# 调用 SAP HANA SQLScript,别把结果集和输出参数读反了

本文详解C#调用SAP HANA存储过程时,如何正确处理查询结果集与输出参数的分离问题。通过CALL TEST_PRO1(?, ?)示例,强调参数顺序、类型匹配(如OdbcType.NVarChar)、读取时机(先读取器后访问OUT参数)及资源管理的重要性。指出常见错误:类型错配、顺序混乱、过早读取输出参数等,并建议明确结果集与输出参数的职责分工,避免重复传递数据。同时提醒本地与HANA Cloud部署在连接配置、驱动位数和加密上的差异,确保调用链路稳定可靠。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 23

C# MES通信从入门到精通(10)——C#使用HTTP的Post和Get方法和Mes系统通信

本文详细介绍了如何利用C#完成与HTTP协议的MES系统进行通信,通过POST和GET方法实现与MES系统的交互,由高级工程师的实战经验总结,实属C#与MES通信领域的葵花宝典!

qq_34059233的博客 3413

C#引用参数以及返回参数的笔记

1.示例代码 static void Main(string[] args) { Calculate(out int Area,out int Perimeter); Console.WriteLine("面积为:{0};周长为{1};", Area, Perimeter); Console.WriteLine("***************************************");

qq_59081708的博客 893

C#医院门诊系统源码:三层架构+存储过程真可运行

三层架构是.NET企业级应用的核心设计范式,其本质是通过表现层(UI)、业务逻辑层(BLL)与数据访问层(DAL)的职责分离,提升系统可维护性与安全性。在医疗信息系统等强一致性场景中,结合SQL Server存储过程可实现逻辑复用、执行计划缓存与SQL注入防护。本方案基于WinForms落地完整门诊流程——挂号、处方、收费,所有数据库操作均经由参数化存储过程驱动,并支持SQL Server 2019环境一键附加部署。适合ADO.NET进阶实践者快速掌握真实项目中的分层协作、事务控制与部署避坑经验。

weixin_33834628的博客 288

C#调用SQL中的存储过程中有output参数,存储过程执行过程中返回信息

C#调用SQL中的存储过程中有output参数,类型是字符型的时候一定要指定参数的长度。不然获取到的结果总是只有第一字符。本人就是由于这个原因,折腾了很久。在此记录一下,供大家以后参考! 例如: CREATE PROCEDURE sp_AccountRole_Create @CategoryID int, @RoleName nvarchar(10), @Description nvarchar(50), @RoleID int output AS DECLARE @Count int...

newnazi的专栏 813

VB中调用带参数存储过程

VB做为快速应用开发(RAD)工具越来越得到开发人员的认可和接受。它对许多API(如ODBC API、SOCKET API等等)的封装使得编程变得简单起来。同时,它支持集成开发环境下的可视化、事件驱动、面向对象等编程特点。下面,我们谈谈在VB中调用存储过程的实现方法及其注意事项。 ---- 我们知道,VB的数据库编程有许多种方法,比如直接用ODBC API编程,这种方法灵活、高效,程序员可以实现对数据库复杂的控制;也可以用VB中的数据对象,如RDO(远程数据对象)、DAO(数据访问对象)、ADO(ActiveX 数据对象),这种方法实现起来方便、快捷,但灵活性较差一些。由于存储过程在实现数据封装、隐藏以及代码的预编译、减少网络负载、维护方便等优点,所以被许多RDBMS和编程工具做支持。VB中的各类数据对象也提供对存储过程的支持。 ---- 我们以ADO为例来说明其实现的步骤

C++调用Python并传参

C#调用C++,C++调用Python并传参,包括C++向python传递图片数据,C++向python传递组数据,C++向python传递字符串数据,C++向python传递结构体数据,C++初始化python类数据并调用方法,实际案例,能直接运行,需要安装opencv和python,numpy库,实现C#控制台程序通过调用C++,、C++调用python文件动态生成数据获取返回值,并输出,

C#怎么操作数据库存储过程 C#如何调用SQL Server存储过程传参并获取返回结果【数据库】

参数名须与存储过程定义一致,输出/返回参数需显式指定方向,执行后从SqlParameter.Value取值,DateTime优先用SqlDbType.DateTime2,空值赋DBNull.Value,异步调用需ConfigureAwait(false)防死锁。Mokker AI AI产品图添加背景。

u011343256的博客 228

使用C#代码获取存储过程返回值

主要介绍了使用C#代码获取存储过程返回值,需要的朋友可以参考下

C#中SQL参数传入空值报错解决方案

C#中的null与SQL中的NULL是不一样的,SQL中的NULL用C#表示出来就是DBNull.Value。 注意:SQL参数是不能接受C#的null值的,传入null就会报错。 下面我们看个例子: 1 SqlCommand cmd=new SqlCommand("Insert into Student values(@StuName,@StuAge)" ,conn); 2 cmd...

weixin_30263277的博客 400

C#调用存储过程详解(带返回值、参数输入输出等)

主要介绍了C#调用存储过程的方法,结合实例形式详细分析了各种常用的存储过程调用方法,包括带返回值、参数输入输出等,需要的朋友可以参考下

TI毫米波雷达人体生命体征(呼吸、心跳)信号提取算法(IWR6843ISK+DCA1000EVM)

本篇内容介绍的算法主要为传统的提取算法,但可实现在1m内呈现良好的检测效果,能够提取出非常可观的呼吸和心跳波形,但在超出1m的距离后便不适用这个算法了。远距离检测呼吸和心跳始终是这个领域一个很大的挑战。要实现远距离检测可在提取相位信号、分离呼吸和心跳信号上进行改进处理,例如线性解调提取相位、改进的VMD分离呼吸和心跳算法。

m0_61934621的博客 3万+

SQL Server存储过程开发实战:从零到精通,构建高效数据库业务逻辑

存储过程是数据库编程中的核心概念,它作为预编译的SQL代码块存储在数据库服务器端,实现了业务逻辑的封装与复用。其工作原理基于预编译执行,首次编译后执行计划被缓存,后续调用直接运行,从而显著提升查询性能并减少网络传输开销。在技术价值层面,存储过程通过集中管理数据操作逻辑,增强了数据安全性和系统可维护性,同时支持复杂的事务处理和错误控制机制。在应用场景上,它广泛应用于电商订单处理、数据批量迁移、报表生成和高并发API后端等需要封装多步数据库操作的业务场景。本文以SQL Server为平台,通过一个完整的电商下单

weixin_30587927的博客 413

Flash芯片的VCC上电到可操作时间过长

Flash的VCC上电到操作时间(tVSL)通常有最大值限制,如果超过这个时间,核心风险是状态机不同步和指令锁存错误。比如芯片内部振荡器可能已经尝试启动又休眠了,但主控却在这之后才发送指令,导致完全 misinterpreted。Flash芯片的(从电源上电到可以正常进行读写操作的时间)如果过长,会产生一系列负面影响简单来说,这个时间过长意味着电源上升速度太慢,违反了芯片的要求。

qq_61918649的博客 722
上一篇: 【学习笔记】C# 多线程线程启动方法有参数或者想执行多个函数的方法,匿名函数
下一篇: 【学习笔记】打好基础,弄清楚几个基本概念:程序集、attribute
大头的小宝
博客等级 码龄18年 482粉丝 22原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值