String sql="select * from user where 1=1 "; if(username!=null) sql=sql+ " and username='"+username+"'"; if(password!=null) sql=sql+ " and password='"+password+"'";如上题
在C#中会写(如上),但在存储过程中不会写了了,老是出错。麻烦各位帮忙该写到存储过程中...
 

解决方案 »

  1.   

     create proc UserLogin
    (
    @UserName varchar(200),
    @UserPWd varchar(200),
    @Sql  varchar(300)
    )
    as
    set @Sql='elect * from user where 1=1 '
    if(@UserName!=null)
    begin 
    set @Sql=@Sql+'and UserName=@UserName'
    end
    else
    begin
    if(@UserPwd!=null)
    set @Sql=@Sql+'and PassWord=@UserPwd'
    end
      

  2.   


    就这个 
    if 条件
     begin
       执行的代码
     end
      

  3.   


    create proc UserLogin
    (
    @UserName varchar(200),
    @UserPWd varchar(200),
    @Sql  varchar(300)
    )
    as
    set @Sql='elect * from jjw_admin where 1=1 '
    if(@UserName!=null)--如果用户名为空
    begin 
    set @Sql=@Sql+'and UserName=@UserName'
    end
    else if(@UserPwd!=null)--如果密码为空
    begin
    set @Sql=@Sql+'and UserPwd=@UserPwd'
    end
    --下面的可以不要
    else --如果用户名和密码都不为空
    begin
    set @Sql=@Sql
    end
      

  4.   

    create proc UserLogin
    (
    @UserName nvarchar(20),
    @UserPWd  nvarchar(20)
    )
    as
    declare @Sql varchar(200)
    set @Sql='select * from user where 1=1 '
    if @UserName is not null 
      set @Sql=@Sql+'and UserName='''+@UserName+''''
    if @UserPwd is not null
      set @Sql=@Sql+'and PassWord='''+@UserPwd+''''
    exec(@Sql)
      

  5.   

    CREATE PROCEDURE sql_Sel
    (
        @username varchar(20),
        @password varchar(20)
    )
    as 
    if(@username != "")
    select * from user where 1=1 and and username=@username 
    else if(@password != "")
    select * from user where 1=1 and and username=@password
    GO
      

  6.   


    declare @sql varchar(500),@userName varchar(20),@passWord varchar(20)set @sql='select * from user where 1=1 'set @userName='userName'--set @passWord='passWord'if(len(isnull(@userName,''))<>0)
    set @sql=@sql+' and username='''+@userName+''' 'if(len(isnull(@passWord,''))<>0)
    set @sql=@sql+' and password='''+@passWord+''' 'print @sql
      

  7.   


    create proc up_UserLogin
    (
    @UserName varchar(20),
    @UserPWd  varchar(20)
    )
    as
    declare @sql varchar(500)
    set @sql='select * from user where 1=1 'set @UserName='userName'--set @UserPWd='passWord'if(len(isnull(@UserName,''))<>0)
        set @sql=@sql+' and username='''+@UserName+''' 'if(len(isnull(@UserPWd,''))<>0)
        set @sql=@sql+' and password='''+@UserPWd+''' 'exec(@sql)
      

  8.   


    create proc UserLogin
    (
    @UserName varchar(200),
    @UserPWd varchar(200),
    @Sql  varchar(300)
    )
    as
    set @Sql='elect * from user where 1=1 '
    if(@UserName is not null and @UserName<>'')
    begin 
    set @Sql=@Sql+'and UserName=@UserName'
    end
    else
    begin
    if(@UserPwd is not null and @UserPwd <>'')
    set @Sql=@Sql+'and PassWord=@UserPwd'
    end
      

  9.   


    create proc up_UserLogin
    (
    @UserName varchar(20),
    @UserPWd  varchar(20)
    )
    as
    declare @sql varchar(500)
    set @sql='select * from user where 1=1 '--set @UserName='userName'--set @UserPWd='passWord'if(len(isnull(@UserName,''))<>0)
        set @sql=@sql+' and username='''+@UserName+''' 'if(len(isnull(@UserPWd,''))<>0)
        set @sql=@sql+' and password='''+@UserPWd+''' 'exec(@sql)