sqlserver数据库中有参数有返回值的存储过程

USE [ 数据库]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[employeeProc_returnValue]
(
@name nvarchar(20),
@gender nvarchar(20) OUTPUT
)

AS

BEGIN

SELECT @gender=gender from employee where name=@name

if @gender='男'
RETURN -1
else

RETURN 0

END

sqlserver数据库中创建的存储过程如上面的代码,注意的还需在数据库中创建表employee(示例如下),并写入几条记录,以供存储过程查询使用。




C#中的调用代码如下:

           SqlConnection conn = new SqlConnection(conn_string);
            if (conn.State != System.Data.ConnectionState.Open)
                conn.Open();

            SqlCommand cmd = new SqlCommand("employeeProc_returnValue", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@name", "张三");  //给输入参数赋值


            SqlParameter parOutput = cmd.Parameters.Add("@gender", SqlDbType.NVarChar, 50);  //定义输出参数
            parOutput.Direction = ParameterDirection.Output;  //参数类型为Output


            SqlParameter parReturn = new SqlParameter("@return", SqlDbType.Int);
            parReturn.Direction = ParameterDirection.ReturnValue;   //return返回值,0表示成功                    
            cmd.Parameters.Add(parReturn);
           
            cmd.ExecuteNonQuery();
            MessageBox.Show(parOutput.Value.ToString());   //显示输出参数的值
            MessageBox.Show(parReturn.Value.ToString());  //显示返回值
            conn.Close();

经测试可行。


猜你喜欢

转载自blog.csdn.net/yicai168/article/details/78476955