标签:
1. 存储过程中含有多个输出参数的示例
CREATE PROCEDURE proc_Test @ID INT, @Name VARCHAR(50), @Out1 INT OUTPUT, @Out2 VARCHAR(50) OUTPUT AS BEGIN SET @Out1=@ID SET @Out2=@Name END GO /*Sql 调用方式*/ DECLARE @Out1 INT DECLARE @Out2 VARCHAR(50) EXEC Proc_Test 1,‘name‘,@Out1 OUTPUT,@Out2 OUTPUT SELECT @Out1,@Out2
/*c#调用Sql原生写法*/ SqlConnection sqlCon = new SqlConnection(SQLHelper.connectionString); SqlCommand sqlCmd = new SqlCommand("Proc_Test", sqlCon); sqlCmd.CommandType = CommandType.StoredProcedure;//设置调用的类型为存储过程 SqlParameter sqlParme; //输入参数1 sqlParme = sqlCmd.Parameters.Add("@ID", SqlDbType.Int, 4); sqlParme.Direction = ParameterDirection.Input; sqlParme.Value = 1; //输入参数2 sqlParme = sqlCmd.Parameters.Add("@Name", SqlDbType.NVarChar, 50); sqlParme.Direction = ParameterDirection.Input; sqlParme.Value = "name"; //输出参数1 sqlParme = sqlCmd.Parameters.Add("@Out1", SqlDbType.Int, 4); sqlParme.Direction = ParameterDirection.Output; //输出参数2 sqlParme = sqlCmd.Parameters.Add("@Out2", SqlDbType.NVarChar, 50); sqlParme.Direction = ParameterDirection.Output; sqlCon.Open(); sqlCmd.ExecuteNonQuery(); int Out1 = Convert.ToInt32(sqlCmd.Parameters[2].Value); string Out2 = sqlCmd.Parameters[3].Value.ToString(); sqlCon.Close(); /*借用SqlHelper的写法*/ SqlParameter[] parameters = { SQLHelper.MakeInParam("@ID",SqlDbType.Int,4,1), SQLHelper.MakeInParam("@Name",SqlDbType.NVarChar,50,"name"), SQLHelper.MakeOutParam("@Out1",SqlDbType.Int,4), SQLHelper.MakeOutParam("@Out2",SqlDbType.NVarChar,50)}; int row = DAL.SQLHelper.ExecuteNonQuery(DAL.SQLHelper.connectionString, CommandType.StoredProcedure, "proc_Test", parameters); int numOut1 = Convert.ToInt32(parameters[2].Value); string strOut2 = parameters[3].Value.ToString();
标签:
原文地址:http://www.cnblogs.com/eye-like/p/4819653.html