sqlserver的存储过程如下
create procedure p_1
@a int output
as
select id,name from tableA存储过程本身带有output参数,并且还返回结果集。这种情况下代码如何写,请教大家
create procedure p_1
@a int output
as
select id,name from tableA存储过程本身带有output参数,并且还返回结果集。这种情况下代码如何写,请教大家
@a int output
as
select @a =5go declare @ss int
exec pp @ss outputselect @ss as [返回值] 返回值
-----------
5(1 行受影响)
你用这个方法试试
你是去除output取出结果集,还是既想取到output的值,又想得到结果集?如果是既想取到output值,又想得到结果集,用SqlDataAdapter就可以实现了DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlCmd);
da.Fill(ds);//取得结果集.
int iOutput = 0;
foreach (SqlParameter para in sqlCommand.Parameters)
{
if para.Direction == ParameterDirection.Output)
{
iOutput = (int)para.Value;
}
}
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlconn;
cmd.CommandText = "";
cmd.CommandType = CommandType.StoredProcedure;
IDataParameter[] parameters = {
new SqlParameter("@Id", SqlDbType.Int,4) ,
new SqlParameter("@Name", SqlDbType.NVarChar,15)
};
parameters[0].Direction = ParameterDirection.Output; // 设置为输出参数
parameters[1].Value = "";
cmd.Parameters.Add(parameters[0]);
cmd.Parameters.Add(parameters[1]);
cmd.Parameters.Add(parameters[2]);
SqlDataAdapter dp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
dp.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
Label1.Text += parameters[0].Value.ToString();CREATE PROCEDURE Categoriestest6
@id int output,
@Name nvarchar(15)
AS
select @id = id from tb where name=@Name
select * from Tb
GO