现在的位置: 首页 > 综合 > 正文

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

2012年09月14日 ⁄ 综合 ⁄ 共 1518字 ⁄ 字号 评论关闭

存储过程

  1. CREATE PROCEDURE [dbo].[Login_Test] 
  2. (
  3.     @UserName nvarchar(50),
  4.     @flag int out
  5. )
  6. AS
  7.     if exists(SELECT * FROM Admin WHERE UserName =@UserName) 
  8.     begin
  9.         set @flag=11;
  10.     end
  11.     else
  12.     begin
  13.         set @flag=10;
  14.     end
  15. GO

执行方法

  1. /// <summary>
  2.         /// 带输出参数的存储过程原型
  3.         /// </summary>
  4.         /// <param name="sUserName"></param>
  5.         /// <returns></returns>
  6.         public int testoutput(string sUserName)
  7.         {
  8.             SqlConnection myConnection = new SqlConnection(ConfigurationManager.AppSettings["SQLCONNECTIONSTRING"].ToString());
  9.             SqlCommand scd = new SqlCommand();
  10.             scd.Connection = myConnection;
  11.             scd.CommandText = "Login_Test";
  12.             scd.CommandType = CommandType.StoredProcedure;
  13.             //增加输入参数
  14.             SqlParameter paramin = scd.CreateParameter();
  15.             paramin.ParameterName = "@UserName";
  16.             paramin.DbType = DbType.String;
  17.             paramin.Size = 50;
  18.             paramin.Value = sUserName;
  19.             //增加输出参数,多了个Direction少了个Value
  20.             SqlParameter paramout = scd.CreateParameter();
  21.             paramout.ParameterName = "@flag";
  22.             paramout.DbType = DbType.Int32;
  23.             paramout.Size = 4;
  24.             paramout.Direction = ParameterDirection.Output;
  25.             //别忘了加入
  26.             scd.Parameters.Add(paramin);
  27.             scd.Parameters.Add(paramout);
  28.             myConnection.Open();
  29.             scd.ExecuteNonQuery();
  30.             myConnection.Close();
  31.             //返回
  32.             return (int)paramout.Value;
  33.         }

抱歉!评论已关闭.