很简单的一个存储过程,就是搞不定???
create proc Login
(
@Name nvarchar(50),
@Pwd nvarchar(50)
)
as
declare @equal nvarchar(4)
set @equal= '= '
declare @str nvarchar(1000)
set @str= 'select * from Users where LgName ' + @equal + @Name + 'and Pwd ' + @equal + @Name
exec sp_executesql @str
go
这个验证用户登录的存储过程调试成功,就是当调用的时候老是起不到作用,不知道错在什么地方了,请大侠指教??
[解决办法]
create proc Login
(
@Name nvarchar(50),
@Pwd nvarchar(50)
)
as
declare @equal nvarchar(4)
set @equal= '= '
declare @str nvarchar(1000)
set @str= 'select * from Users where LgName ' + @equal + ' ' ' ' + @Name + ' ' ' and Pwd ' + @equal + ' ' ' ' + @Pwd + ' ' ' '
exec sp_executesql @str
go
[解决办法]
它的 意思就是说
一般对于字符型的字段了在sql语句中对应的值应该用单引号括起来
比如
select × from a where name= 'qiyuefeng '
对应你的问题就是组合的时候加个单引号的问题
[解决办法]
create proc Login
(
@Name nvarchar(50),
@Pwd nvarchar(50)
)
as
select * from Users where LgName = @Name and Pwd = @Pwd
go
最好不要用上面的方法:因为如果输入的密码是: ' 'or 1 <> 0 --
那样的话你的数据就暴露出去了
[解决办法]
西,在前端就要控制,不能 ' 'or 1 <> 0 --的入存程中。