注册 登录
编程论坛 ASP技术论坛

这个存储过程是否有不妥?列值变列名了!

kira007 发布于 2008-11-11 12:23, 624 次点击
存储过程如下:
调用却提示错误 ,症状如下
'=====================================
提交表单后,各参数值
Tablenum="admin"
Username="john"
UserPassword="123456"
一运用存储过程 就提示 列名“john”无效
john明明是 username 列 的值 ,怎么变成了 表的列?
'=====================================

CREATE  PROCEDURE UserLogin

@Tablenum  varchar(50),
@Username  varchar(50),
@UserPassword  varchar(50),
@iReturn int output

as

DECLARE   @SqlStr   NVARCHAR(1000)
set  @SqlStr="select *  from  ["+ @Tablenum + "]   where  [username] = "+@Username
exec(@SqlStr )

 
  if(@@rowcount <1)

  begin
  set @iReturn=0
  end

else

begin         
        set  @SqlStr="select  *  from  ["+@Tablenum+"]   where  [username]=    "+@Username+"   and   [password] =  "+@UserPassword
        exec(@SqlStr )
      

          if(@@rowcount <1)

          begin
          set @iReturn=1
           end

          else
          begin
          set @iReturn=2
           end
end
GO

[[it] 本帖最后由 kira007 于 2008-11-11 13:23 编辑 [/it]]
3 回复
#2
hmhz2008-11-11 12:49
[username]    "+@Username+"缺少 =

[username]="+@Username+"
#3
kira0072008-11-11 13:21
SORRY,这个[username]="+@Username+"在 我的SQL 中 是有 = 的!
问题依旧是这样啊
#4
yms1232008-11-11 14:42
set  @SqlStr="select *  from  ["+ @Tablenum + "]   where  [username] = '"+@Username+"'"
改成这样
1