码迷,mamicode.com
首页 > Windows程序 > 详细

c# 调用存储过程

时间:2015-09-18 16:49:57      阅读:239      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!