存储过程输出参数问题

问题描述

我写了一个存储过程:ALTERPROCEDUREPostArticle(@titlevarchar(50),@contenttext,@father_idint,@userNamevarchar(50))ASinsertintoArticle(title,content,father_id,author_id)values(@title,@content,@father_id,dbo.GetUserId(@userName))RETURN(@@identity)//或用selectmax(id)fromArticle然后我在.cs代码里调用传出来的值SqlParameterparm=cmd.Parameters.Add("@returnId",SqlDbType.Int);parm.Direction=ParameterDirection.Output;intreturnArtId=Convert.ToInt32(cmd.Parameters["@returnId"].Value);returnreturnArtId;但是,编译时出错,说Convert.ToInt32(cmd.Parameters["@returnId"].Value)这里参数不对,怎么回事呢???

解决方案

解决方案二:
学习
解决方案三:
你的存储过程当中并没有声明["@returnId"]这个输出参数,所以你在提取时肯定会出错可以试试把在存储中修改ALTERPROCEDUREPostArticle(@titlevarchar(50),@contenttext,@father_idint,@userNamevarchar(50),@returnIdint)ASinsertintoArticle(title,content,father_id,author_id)values(@title,@content,@father_id,dbo.GetUserId(@userName))select@returnId=max(id)fromArticle

然后面前台代码中直接采用获取参数的方法获取其值SqlParameterparm=cmd.Parameters.Add("@returnId",SqlDbType.Int);parm.Direction=ParameterDirection.Output;intreturnArtId=Convert.ToInt32(cmd.Parameters["@returnId"].Value);returnreturnArtId;

问题应该可以解决
解决方案四:
你的存储过程里没有@returnId这个参数
解决方案五:
parm.Direction=ParameterDirection.ReturnValue;改成这样````你没设置输出参数``只有返回的值
解决方案六:
ALTERPROCEDUREPostArticle(@titlevarchar(50),@contenttext,@father_idint,@userNamevarchar(50),@returnIdintoutput)ASinsertintoArticle(title,content,father_id,author_id)values(@title,@content,@father_id,dbo.GetUserId(@userName))set@returnId=@@identity
解决方案七:
楼上正解
解决方案八:
QQ群:323373

时间: 2024-08-02 03:42:02

存储过程输出参数问题的相关文章

字符集-mysql 存储过程输出参数中文返回乱码

问题描述 mysql 存储过程输出参数中文返回乱码 我用C++ 通过ODBC访问mysql 数据库,mysql 数据库版本是5.6.12 odbc驱动版本5.2.5 数据库的字符集全部设置为utf8 驱动的字符集也设置为utf8. 程序中通过select直接从表中查出,中文不会乱码, 但通过存储过程的输出参数返回就是乱码. 求大神们帮忙.谢谢 解决方案 在存储过程里查询的时候,指定查询字符集

存储过程 带参数-java调用mysql存储过程输出参数

问题描述 java调用mysql存储过程输出参数 CREATE PROCEDURE T_WEATHER_PRO (IN tmdn VARCHAR(12),OUT tmsg VARCHAR(12)) BEGIN DECLARE states,beginTime,endTime VARCHAR(2) ; SELECT T_STATES,T_BEGINTIME,T_ENDTIME INTO states,beginTime,endTime FROM T_USER_WEATHER WHERE T_USE

asp.net mssql存储过程输出参数的调用

asp教程.net mssql存储过程输出参数的调用 最简单的语法 create proc p as   select * from tb sql存储过程的概念,优点及语法 整理在学习程序过程之前,先了解下什么是存储过程?为什么要用存储过程,他有那些优点 定义:将常用的或很复杂的工作,预先用sql语句写好并用一个指定的名称存储起来, 那么以后要叫数据库教程提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令. 讲到这里,可能有人要问:这么说存储过程就是一堆sql语

SqlDataReader执行带输出参数存储过程的错误分析

在上一篇随笔:SqlDataReader读取分页数据,pageCount你是肿么了? 遇到了很让人头疼的问题:SqlDataReader执行带输出参数的存储过程总是获取不到输出参数的正确值.这里将解决办法及分析过程列出,为遇到相同问题的小伙伴提供一种解决方案. 在SqlDataReader读取分页数据,pageCount你是肿么了?的评论中有博友提出将 param[2].Direction = ParameterDirection.Output; 该句代码放在执行查询前,确实有这一部分原因.按照

.net调用mysql存储过程中输出参数的问题,求救~~

问题描述 环境.net2.0+mysql5.0.37+Connector/Net5.2问题:在ASP.NET中调用mysql存储过程(输出参数名于存储过程输出参数名不同时),提示输出参数不存在:Parameter'@param1'notfoundinthecollection.当ASP.NET中修改输出参数名于存储过程中输出参数名相同的时候,提示一个新的参数未定义:Parameter'@1118079786param1'mustbedefined.而这个参数变量是自动生成的,在存储过程中我并没有

关于存储过程的ADO调用的一些心得(输出参数,返回值)

ado|存储过程|心得 在一个项目中,我需要用到存储过程来访问数据,为了提供一个比较一致的接口以便调用,我没有使用CreateParameter(),而是调用CommandPtr的Refresh()函数先从数据库中查询参数._ConnectionPtr m_pConn;m_pConn.CreateInstance(__uuidof(Connection));m_pConn->Open("driver={SQL Server};server=127.0.0.1;DATABASE=pub;UI

PHP如何得到mssql的存储过程的输出参数?

存储过程 <?$conn=mssql_connect("127.0.0.1","user","passwd");mssql_select_db("mydb");$stmt=mssql_init("pr_name",$conn);//$a=50001;mssql_bind($stmt,"RETVAL",$val,SQLVARCHAR); //用于直接返回return -103此类的值

ASP调用带有输入参数和输出参数的存储过程

存储过程 返回值其实是一种特殊的输出参数.在大多数情况下,我们用到的是同时有输入及输出参数的存储过程,比如我们想取得用户信息表中,某ID用户的用户名,这时候,有一个输入参数----用户ID,和一个输出参数----用户名.实现这一功能的存储过程如下:<br><br> <table style="WIDTH: 475px; HEIGHT: 220px" borderColor=#cccccc width=475 align=center bgColor=#e3

JAVA中对存储过程的调用方法(二) 带输出参数的

二.带输出参数的 1:返回int -------------------------带输出参数的---------------- alter procedure getsum @n int =0, @result int output as declare @sum int declare @i int set @sum=0 set @i=0 while @i<=@n begin set @sum=@sum+@i set @i=@i+1 end set @result=@sum --------