C#调用存储过程返回值

存储过程在C#中调为何会是空值,在SQL调用有结果。 IF EXISTS(SELECT *FROM SYSOBJECTS WHERE NAME='spSelectTestList')DROP PROC  spSelectTestListgocreate  PROCEDURE [dbo].[spSelectTestList]  ( @DataType varchar(10),   --日期条件 @TestType char(3),    --产品类型条件 @TestListId char(18) OUTPUT,  --输出最后一条记录 @TestSql varc 阅读详情

 

C#调用存储过程返回值


因为一般都用T-SQL来执行数据库操作,偶尔现在转到用存储过程,竟然写不来调用过程的返回值了,查了很多资料,都不详细,或者没到点上,也许是我比较笨,呵呵。

C# 源代码

 1         /// <summary>
 2         /// 校验用户
 3         /// </summary>
 4         /// <param name="user">用户信息</param>
 5         /// <returns></returns>
 6         public static int VerifyUser(clsUser user)
 7         {
 8             int iRet;
 9             string sql = String.Format("EXECUTE VerifyUser @myVerifyReader OUTPUT,'{0}','{1}'",user.username,user.password); //执行的T-SQL串
10             SqlCommand scmd = new SqlCommand(sql, conn);
11             scmd.Parameters.Add(new SqlParameter("@myVerifyReader",SqlDbType.Int));
12             scmd.Parameters["@myVerifyReader"].Direction = ParameterDirection.Output;
13             //
14 
15             DBOpen(conn);
16             //在返回值上有问题
17             scmd.ExecuteNonQuery();
18             iRet = (int)scmd.Parameters["@myVerifyReader"].Value;
19             DBClose(conn);
20             return iRet;
21         }


SQL SERVER存储过程

------------------------------


/*
* VerifyUser 存储过程
* 用途:验证用户登陆
*/
CREATE PROCEDURE VerifyUser
(
    
@myVerifyReader int OUTPUT, --返回结果
    @username varchar(50), --用户名
    @userpassword varchar(50) --用户密码
)
AS
IF EXISTS(SELECT [id] FROM [Users] WHERE username = @username AND userpassword = @userpassword)
    
SET @myVerifyReader = 0 --通过验证

ELSE IF EXISTS(SELECT [id] FROM [Users] WHERE username = @username)
    
SET @myVerifyReader = 1 --用户存在,密码不正确
ELSE
    
SET @myVerifyReader = 2 --用户不存在

RETURN  isnull(@myVerifyReader,3)
-------------------------------------------------
GO


先简单写一下吧,就是这么用的。

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

相关推荐

C#获取SQL server数据库存储过程脚本,可重复执行

C#获取SQL server数据库存储过程脚本,可重复执行.用于给数据库升级的打升级包的时候,十分方便

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

CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @studentname nvarchar(50) OUTPUT AS BEGIN SELECT @studentname=studentname FROM student WHERE studentid=@studentid if @@Error<>0...

zq爱生活爱代码的博客 1531

脑影像分析入门:如何用一般线性模型(GLM)处理fMRI数据?

本文为神经影像研究入门者详细解析了如何运用一般线性模型(GLM)处理fMRI数据。文章从GLM的核心原理出发,逐步拆解了从实验设计、构建稳健设计矩阵、模型估计与统计推断,到高阶分析及多重比较校正的全流程,并指出了常见陷阱与结果解读要点,是掌握fMRI数据分析基础的关键指南。

weixin_29091445的博客 400

深入理解C#中存储过程的返回值处理与分页实现

本文详细介绍了在C#中调用带返回值的SQL存储过程的方法,重点讲解了输出参数(Output Parameters)的使用。通过一个分页查询的实际案例,展示了如何定义参数数组、设置参数方向、获取输出参数值以及处理返回数据。文中还提供了存储过程的实现代码,并强调了关键技术与最佳实践,包括参数方向设置、空值处理、SQL注入防护和异步调用支持。该方案能有效提升数据库操作的性能与安全性,适用于需要返回多个结果或参数的场景。

德仔 695

实战分享:如何用Dify和MaxKb实现文档智能切分与高效检索(附代码解析)

本文详细介绍了如何结合Dify和MaxKB构建文档智能切分与高效检索系统。针对传统全文检索的不足,提出了结构感知的文档切分方案,通过解析文档层级关系并构建标题链,实现了精准的章节级检索。文章包含完整的代码实现,涵盖文档解析、智能切分、向量化策略及双索引优化,并分享了性能调优和生产环境实践经验。

qsc90123456的博客 546

(92页PPT)某大型集团信息化项目企业数字化转型ERP系统蓝图设计规划方案(附下载方式)

同时,外贸获利空间被严重挤压,必须从价格竞争转向品牌竞争。该方案针对某大型外贸集团在数字化时代的转型需求,提出了一套完整的ERP系统建设框架和实施路径,具有很高的专业参考价值。特别值得关注的是方案提出的"价值为先"指导思想,通过将企业价值图与信息系统建设紧密结合,确保IT投资直接支撑价值创造。同时,方案充分考虑了集团多元化、国际化的发展需求,设计了灵活可扩展的系统架构。总的来说,这份实施方案专业性强、内容全面、措施具体,既立足解决当前问题,又着眼未来发展需求,为大型集团企业的数字化转型提供了优秀范本。

AI_data_cloud的博客 1026

C#中调用存储过程并且具有返回值

public static bool Proc(string param1, int param2) { bool isSucc = true; string ConnectionStrings = ConfigurationManager.ConnectionStrings["字符串"].ToString();

陶博客 921

医学超声影像研究——从拒稿到录用:我的UMB投稿实战复盘

本文分享了作者将一篇关于超声影像中肿瘤传统分类方法的研究论文,从被其他期刊拒稿到最终被《Ultrasound in Medicine & Biology》录用的完整实战经验。文章详细复盘了心态调整、精准选刊、针对UMB期刊的稿件精修、投稿系统操作细节以及与审稿人有效沟通回复的全过程,为医学影像领域的科研工作者提供了宝贵的投稿策略与实操指南。

stem5的博客 492

c# 调用mysql存储过程 返回值_C#调用数据库存储过程

用来创建DataRead的存储过程调用;//数据库连接字符串stringconnStr="Server=localhost;database=stuIMS;uid=sa;pwd=admin";//建立连接SqlConnection conn=new SqlConnection(connStr);//建立查询命令SqlCommand myCommand=newSqlCommand("存储过程名",...

weixin_28752415的博客 282

别再只玩积木了!用乐高EV3和官方软件,手把手教你做个能巡线的小车(附完整代码)

本文详细介绍了如何利用乐高EV3套件和官方软件制作智能巡线机器人,从硬件组装到软件编程全面覆盖。通过传感器原理讲解、控制算法调试等工程化细节,帮助读者掌握机器人开发的核心理念,特别适合STEAM教育和硬件编程爱好者实践。

weixin_30776273的博客 449

(南京观海微电子)——TCON介绍

TCON又称:逻辑板,控制板,在液晶电视里的作用和CRT中的视放板相当,但有本质的区别,逻辑板不是一个纯粹的信号放大器,它输入是LVDS格式信号,而不是RGB。逻辑板的作用是把数字板送来的LVDS或TTL图像数据信号,时钟信号进行处理移位寄存器存储将图像数据信号,时钟信号转换成屏能够识别的控制信号行列信号RSDS控制屏内的MOSFET管工作而控制液晶分子的扭曲度。目前国内主要的TCON板生产商有视显光电。传统TCON的布局主要分为以下两种:X+C分离式和X+C一体式。

m0_75095200的博客 3834

c# 调用mysql存储过程 返回值_使用C#代码获取存储过程返回值

废话不多说,直接给大家贴C#代码了。/// /// 执行存储过程,返回" 返回值"/// /// 存储过程名/// 存储过程参数/// 执行存储过程的返回值public static int RunProcedureWithReturn(string storedProcName, IDataParameter[] parameters){using (SqlConnection connecti...

weixin_36329414的博客 826

GibbsCAM软件二次开发:GibbsCAM软件API接口详解

API(Application Programming Interface,应用程序编程接口)是一种允许不同软件之间进行通信的接口。在GibbsCAM软件中,API提供了与外部程序交互的能力,使得开发者可以利用GibbsCAM的强大功能进行二次开发,定制化满足特定的制造需求。GibbsCAM的API主要基于.NET框架,使用C#或VB.NET等语言进行编程。在GibbsCAM软件中,通过API接口创建自定义几何形状是实现复杂零件设计和加工策略定制的关键步骤。

kkchenjj的博客 1497

c# 调用mysql存储过程 返回值_C# 调用存储过程操作 OUTPUT参数和Return返回值

存储过程是存放在数据库服务器上的预先编译好的sql语句。使用存储过程,可以直接在数据库中存储并运行功能强大的任务。存储过程在第一应用程序执行时进行语法检查和编译,编译好的版本保存在高速缓存中。在执行重复任务时,存储过程可以提高性能和一致性。由于存储过程可以将一系列对数据库的操作放在数据库服务器上执行,因而可以降低Web服务器的负载,提高整个系统的性能。1、创建存储过程CREATE PROC [DB...

weixin_36290287的博客 719

【车载以太网】【SOMEIP】Wireshark测试someip

一、 Wireshark SOMEIP plugin 1.1 插件安装 Wireshark插件目录:Help -> About Wireshark -> Folders/Pluginshttps://github.com/jamores/eth-ws-someip 解压后,将所有后缀是lua的文件拷贝到Wireshark安装目录plugins/2.4.10/下。 1.2时间戳调整为UTC显示格式 View -> Time Display Format -> Date and Tim.

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 9725

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

在C#中调用存储过程中的两种返回值

//存储过程   //create proc authors_count @outrus int output//as//declare @authors int//select @authors=count(*) from authors//set @outrus=@authors//return @authors   System.Data.SqlClient.SqlConnection sq

vincent668的专栏 780

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

本文实例讲述了C#调用存储过程的方法。分享给大家供大家参考,具体如下:CREATE PROCEDURE [dbo].[GetNameById]@studentid varchar(8),@studentname nvarchar(50) OUTPUTASBEGINSELECT @studentname=studentname FROM studentWHERE studentid=@student...

weixin_42311427的博客 857

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C#调用带返回值的存储过程

C#调用带返回值的存储过程 (1)在SQL Server中建立如下的存储过程: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[GetNameById]  @studentid varchar(8),  @studentname nvarchar(50) OUTPUT AS BEGIN

ERP开发 643

c# 调用mysql存储过程 返回值_C#中使用存储过程返回值的问题

1.存储过程返回SqlDataReaderpublic SqlDataReader getaqiyyuy(string qiy){SqlConnection userConnection = Connection.getConnection();SqlCommand userCommand = new SqlCommand("MVC_getaqiyluy", userConnection);use...

weixin_32312889的博客 378

c#如何调用有参无返回值存储过程和有参有返回值存储过程,以及IDataParameter[]如何赋值(包含decimal值的转换)

第一步先创建数据库链接方法 1.定义访问数据库的方法 /// <summary> /// 执行存储过程 /// </summary> /// <param name="storedProcName">存储过程名</param> /// <param nam...

墨水直达的博客 1460

C#调用存储过程 返回值,输出参数,返回结果集

<br />System.Data.SqlClient.SqlConnection sqlSvrDbCnt = new System.Data.SqlClient.SqlConnection();  //数据库连接对象<br />            System.Data.SqlClient.SqlDataAdapter sqlSvrDbAdp = null;                 //数据适配器对象<br />            System.Data.SqlClient.SqlComm

永生天地 1万+

c# 调用mysql存储过程 返回值_C#调用存储过程 返回值,输出参数,返回结果集

System.Data.SqlClient.SqlConnection sqlSvrDbCnt = new System.Data.SqlClient.SqlConnection(); //数据库连接对象System.Data.SqlClient.SqlDataAdapter sqlSvrDbAdp = null; //数据适配器对象System.Data.Sql...

weixin_26833939的博客 478

c# 调用mysql存储过程 返回值_c# 调用带有返回值的存储过程

先在SQL下建立一个存储过程:create procedure procedure_bbb@name char(10),@address char(50) outputasselect @address=address from bbb where name=@nameif @@error<>0return -1elsereturn 0go下面是C#代码:using System;us...

weixin_32494599的博客 331
上一篇: [转]简单实用的DataSet更新数据库的类+总结
下一篇: C# Using用法三则
rickyll
博客等级 码龄19年 14粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值