当前位置:编程学习 > C#/ASP.NET >>

C#中如何调用返回整型参数的存储过程,并得到返回的整型值

有一个存储过程,执行完成后返回一个整型值,请文C#中如何调用这个存储过程,并得到返回值 --------------------编程问答--------------------
CREATE PROC InsertCategory 
@CategoryName nchar(15)
AS
INSERT INTO Categories(CategoryName) Values(@CategoryName)
Return scope_identity()
go


SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=;database=Northwind");
SqlCommand cmd = new SqlCommand("InsertCategory", cn);
cmd.CommandType = CommandType.StoredProcedure;
//存储过程返回值的参数名随便取,这里我取名为@ReturnValue
cmd.Parameters.Add("@ReturnValue", SqlDbType.Int);
//指明参数的方向是存储过程的返回值
cmd.Parameters["@ReturnValue"].Direction = ParameterDirection.ReturnValue;
cmd.Parameters.AddWithValue("@CategoryName", TextBox1.Text);
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
//得到返回值
Label1.Text = cmd.Parameters["@ReturnValue"].Value.ToString();
--------------------编程问答-------------------- 和执行SQL语句是一样的,只是要要声明SqlCommand sqlcom=new SqlCommand();
                          sqlcom.CommandType = CommandType.StoredProcedure ;
其他没什么区别的。
当然执行的SQL语句改成"exec 存储过程名称 '"+参数1+"','"+参数2+"'..." --------------------编程问答--------------------
我是在外面将 其组织好了的 
string sql = "exec UpdateSingleProblem " + courseid + " ," + userid; 

int result = DBHelper.ExecuteCommand(sql); 


然后调用 

//执行不带参数的非查询语句 
public static int ExecuteCommand(string sql) 

SqlCommand scmd = new SqlCommand(sql, Connection); 
?= scmd.ExecuteNonQuery(); 
return ?; 
}
zj2050      2008年11月02日 19点35分29秒 说:
以下是存储过程 

CREATE PROCEDURE [dbo].[UpdateSingleProblem] 
@tmid int, 
@compid int, 
@courseid int 
AS 
DECLARE @retid int 

if exists (select 1 from TB_SingleProblem where ID=@tmid) 
UPDATE [DBBaby].[dbo].[TB_SingleProblem] 
SET [CompID] = @compid 
,[CourseID] = @courseid 
,[Title] = @title 
WHERE (ID=@tmid) 
else 
INSERT INTO [DBBaby].[dbo].[TB_SingleProblem] 
([CompID] 
,[CourseID]) 
VALUES 
(@compid, 
@courseid ) 

SET @retid = SCOPE_IDENTITY() 
Return @retid --------------------编程问答-------------------- 在BU层调用就可以了 跟写SQL语句一样的  --------------------编程问答-------------------- 在BU层调用就可以了 跟写SQL语句一样的  --------------------编程问答-------------------- 调用是可以,我是问如何得到返回值 --------------------编程问答-------------------- string sql = "exec UpdateSingleProblem " + courseid + " ," + userid; 
==
这不是标准的调用存储过程的方式,请套用1楼的案例,将courseid和userid作为参数 --------------------编程问答-------------------- 现在的程序已经定了,如果修改涉及到太大的工作量

引用 7 楼 amandag 的回复:
string sql = "exec UpdateSingleProblem " + courseid + " ," + userid; 
== 
这不是标准的调用存储过程的方式,请套用1楼的案例,将courseid和userid作为参数
--------------------编程问答-------------------- 哪位老兄给指点一下?! --------------------编程问答-------------------- 顶高歌~
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,