执行带输出参数的存储过程(原型)

存储过程

 

CREATE PROCEDURE [dbo].[Login_Test] 
(
    @UserName nvarchar(50),

    @flag int out
)
AS
    if exists(SELECT * FROM Admin WHERE
UserName =@UserName
   
begin
        set @flag=11;
    end
    else
    begin
     
  set @flag=10;
    end
GO

 

执行方法

 

/// <summary>
        /// 带输出参数的存储过程原型
        ///
</summary>
        /// <param name="sUserName"></param>

        /// <returns></returns>
        public int
testoutput(string sUserName)
        {
            SqlConnection
myConnection = new
SqlConnection(ConfigurationManager.AppSettings["SQLCONNECTIONSTRING"].ToString());

            SqlCommand scd = new SqlCommand();
           
scd.Connection = myConnection;
            scd.CommandText = "Login_Test";

            scd.CommandType = CommandType.StoredProcedure;

 

            //增加输入参数
            SqlParameter paramin =
scd.CreateParameter();
            paramin.ParameterName = "@UserName";

            paramin.DbType = DbType.String;
            paramin.Size =
50;
            paramin.Value = sUserName;

 

            //增加输出参数,多了个Direction少了个Value
            SqlParameter
paramout = scd.CreateParameter();
            paramout.ParameterName =
"@flag";
            paramout.DbType = DbType.Int32;
           
paramout.Size = 4;
            paramout.Direction =
ParameterDirection.Output;

 

            //别忘了加入
            scd.Parameters.Add(paramin);

            scd.Parameters.Add(paramout);

 

            myConnection.Open();
            scd.ExecuteNonQuery();

            myConnection.Close();

 

            //返回
            return (int)paramout.Value;
       
}
posted @ 2010-11-21 21:52  在路上-belm  阅读(501)  评论(0编辑  收藏  举报