首页 > Windows开发 > 详细

c# 调用存储过程

时间:2015-09-18 16:47:08      阅读:305      评论:0      收藏:0      [点我收藏+]

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();
c#调用存储过程示例

 

c# 调用存储过程

原文:http://www.cnblogs.com/eye-like/p/4819653.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!