MSSQL存储过程返回自定义标识

本文介绍了一个使用自定义返回变量实现登录功能的例子。通过创建存储过程并结合ADO.NET方法,有效地减少了代码量和数据库操作次数。

 比如我们要做一个登陆,要求严格的也许要进行很多的判断, 如果这时不用自定义返回变量,就会多写很多的代码判断,多次操作数据库。。。

if  exists(select * from sysyobjects where name='Public_Proc_UserLogin')

drop proc  Public_Proc_UserLogin

go

create proc  Public_Proc_UserLogin
  @Name  varchar(50),
  @Pwd varchar(50),
  @ReValue   varchar(50)  output   //我们需要返回的自定义变量
  as
 
  declare @State varchar(50)
  declare @LoginRt varchar(50)
 
  select @State=Ekd_UserState from  Ekd_UserSheet  where  Ekd_UserName=@Name;
  if(@State='激活')
  begin
       select  @LoginRt= Ekd_UserName from   Ekd_UserSheet where     Ekd_UserName=@Name and   Ekd_UserPwd=@Pwd
          if @LoginRt is not null
          
           set @ReValue='1';
          
           else
        
           set @ReValue='0';                                                
  end
 else
   begin
         set @ReValue='2';
       
   end
   return  @ReValue

对应 ADO.NET方法

        public static string ExecuteQuery(string sConnStr, string sSql, Hashtable args)          

       {                         SqlCommand cmd = null;                     

      try    

      {                        

         cmd = new SqlCommand(sSql);                          

        cmd.Connection = new SqlConnection(sConnStr);                           

      cmd.CommandType=CommandType.StoredProcedure;                            

     cmd.Connection.Open();                                

SqlParameter mypara = cmd.Parameters.AddWithValue("@ReValue", SqlDbType.NVarChar);     

    cmd.Parameters.AddWithValue("@ReValue", SqlDbType.NVarChar);                     

            mypara.Direction=ParameterDirection.ReturnValue;                       

              foreach(DictionaryEntry de in args)        {   

                                      if(de.Value.ToString()!=null &&de.Value.ToString()!="")                  

                       {                                        

            cmd.Parameters.AddWithValue("@"+de.Key.ToString(),de.Value.ToString());                           

       }                                 

     }                                                           

   cmd.ExecuteNonQuery();                              

   string reValue = (string)cmd.Parameters["@ReValue"].Value.ToString();           

                      return reValue;                        

}                     

    finally                     

    {                             

    cmd.Connection.Close();                        

         if(cmd != null) cmd.Dispose();                      

   }             

    }

        #endregion     }

转载于:https://www.cnblogs.com/xiaoliao/p/3447630.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值