GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[employeeProc_returnValue]
(
@name nvarchar(20),
@gender nvarchar(20) OUTPUT
)
AS
BEGINSELECT @gender=gender from employee where name=@name
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();
经测试可行。