返回参数用output, //生成SQL语句 SqlParameter[] Param = new SqlParameter[3]; Param[0] = new SqlParameter("@pValueID",SqlDbType.VarChar); Param[0].Value = pValueID; Param[1] = new SqlParameter("@pFlag",SqlDbType.Int); Param[1].Value = pFlag; Param[2] = new SqlParameter("@BookID",SqlDbType.Int); Param[2].Direction = ParameterDirection.Output; try //执行 { IDataReader drbook = SQLHelper.ExecuteDataReader(ApplicationConfiguration.ConnectionString,CommandType.StoredProcedure,"GetBookIDPR",Param); oBookID = (int)Param[2].Value; }
SQLHelper是用ms的数据访问模块 网络上有的下载,你自己可以用你的调用模块
create procedure dbo.MyProcedure @id VARCHAR(20), @RETURNVALUE VARCHAR(50) OUTPUT --返回值 AS select * from yourTable where id = @id set @RETURNVALUE = '操作成功!' SqlConnection con = new SqlConnection("server=localhost;uid=sa;pwd=sa;database=xx"); SqlCommand com = new SqlCommand("MyProcedure",con); com.CommandType = CommandType.StoredProcedure; SqlParameter p = new SqlParameter("@ID","1"); com.Parameters.Add(p); //加上第二个参数 p = new SqlParameter("@RETURNVALUE",SqlDbType.VarChar,50); p.Direction = ParameterDirection.Output; com.Parameters.Add(p); SqlDataAdapter sda = new SqlDataAdapter(com); DataSet ds = new DataSet(); //获取数据集 con.open(); sda.Fill(ds); //获取返回的参数结果 string result = p.Value; con.close();
示例代码如下 Create Procedure GetTopic @CountNum INT OUTPUT As SET NOCOUNT ON SELECT TopicID, Title, FROM Topic SELECT @CountNum = Count(TopicID) FROM Topic RETURN 0 Go调用 SqlParameter parm = new SqlParameter("@CountNum", SqlDbType.Int); parm.Direction = ParameterDirection.OutPut;using(SqlDataReader rdr = ...) { 保存数据 }return parm.Value;
//生成SQL语句
SqlParameter[] Param = new SqlParameter[3];
Param[0] = new SqlParameter("@pValueID",SqlDbType.VarChar);
Param[0].Value = pValueID;
Param[1] = new SqlParameter("@pFlag",SqlDbType.Int);
Param[1].Value = pFlag;
Param[2] = new SqlParameter("@BookID",SqlDbType.Int);
Param[2].Direction = ParameterDirection.Output; try //执行
{
IDataReader drbook = SQLHelper.ExecuteDataReader(ApplicationConfiguration.ConnectionString,CommandType.StoredProcedure,"GetBookIDPR",Param);
oBookID = (int)Param[2].Value;
}
网络上有的下载,你自己可以用你的调用模块
@id VARCHAR(20),
@RETURNVALUE VARCHAR(50) OUTPUT --返回值
AS
select * from yourTable where id = @id set @RETURNVALUE = '操作成功!'
SqlConnection con = new SqlConnection("server=localhost;uid=sa;pwd=sa;database=xx");
SqlCommand com = new SqlCommand("MyProcedure",con);
com.CommandType = CommandType.StoredProcedure;
SqlParameter p = new SqlParameter("@ID","1");
com.Parameters.Add(p);
//加上第二个参数
p = new SqlParameter("@RETURNVALUE",SqlDbType.VarChar,50);
p.Direction = ParameterDirection.Output;
com.Parameters.Add(p); SqlDataAdapter sda = new SqlDataAdapter(com);
DataSet ds = new DataSet();
//获取数据集
con.open();
sda.Fill(ds);
//获取返回的参数结果
string result = p.Value;
con.close();
Create Procedure GetTopic
@CountNum INT OUTPUT
As
SET NOCOUNT ON SELECT TopicID,
Title,
FROM Topic SELECT @CountNum = Count(TopicID)
FROM Topic RETURN 0
Go调用
SqlParameter parm = new SqlParameter("@CountNum", SqlDbType.Int);
parm.Direction = ParameterDirection.OutPut;using(SqlDataReader rdr = ...)
{
保存数据
}return parm.Value;
----不可能取不到值,我这里可以取出来,贴出你的代码看看,如果用DataReader,要关闭之后,才能取到返回值