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

时间:2023-03-08 23:40:37
C#调用带返回值的存储过程
()在SQL Server中建立如下的存储过程:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GetNameById]
@studentid varchar(),
@studentname nvarchar() OUTPUT
AS
BEGIN
SELECT @studentname=studentname FROM student
WHERE studentid=@studentid
if @@Error<>
RETURN -
else
RETURN
END
该存储过程的作用是根据学号,获取姓名,并使用RETURN关键字来返回值。 如果要在SQL Server的查询分析器中执行该存储过程,对应的SQL语句如下: Declare @studentname nvarchar(),
exec GetNameById @studentname output,@id=
select @studentname select @@Error ()编写C#代码: using (SqlConnection conn = new SqlConnection(connStr))
{
try
{
SqlCommand cmd = new SqlCommand("GetNameById", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@studentid", "");  //给输入参数赋值
SqlParameter parOutput =cmd.Parameters.Add("@studentname", SqlDbType.NVarChar, );  //定义输出参数
parOutput.Direction = ParameterDirection.Output;  //参数类型为Output
SqlParameter parReturn = new SqlParameter("@return", SqlDbType.Int);
parReturn.Direction = ParameterDirection.ReturnValue;   //参数类型为ReturnValue cmd.Parameters.Add(parReturn);
conn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show(parOutput.Value.ToString()); //显示输出参数的值
MessageBox.Show(parReturn.Value.ToString());  //显示返回值
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
} 上面的@return是临时参数,用于获取存储过程的返回值,这个参数名称可以是任意的。 拣尽寒枝不肯栖,寂寞沙洲。 分类: .Net 标签: C#, 存储过程 绿色通道: 谢谢推荐! 关注成功 收藏该文与我联系 zhouhb
关注 -
粉丝 - 关注成功 推荐成功 « 上一篇:DataGridView使用初步
» 下一篇:利用XmlDocument操作XML文件