大哥,救我,关于密码验证问题

songsongzh 2002-02-26 08:27:28
您好,我在做一个用户密码登录程序,从edit1里输入密码,然后与sql server
表里的密码字段比较,但出错。程序如下:
var
inedit,password:string;
begin
inedit:=edit1.text;
adotable1.First;
password:=adotable1.fieldbyname(word).asstring;
if inedit=password then //请问能这样判断两个字符串相等吗
passform.close;
end;

程序编译正确,但运行时我输入正确密码都不能登录。
...全文
49 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
songsongzh 2002-02-26
  • 打赏
  • 举报
回复
谢谢,谢谢,谢谢好心人。
taber 2002-02-26
  • 打赏
  • 举报
回复
1
似乎没设循环条件

2
adotable中取出的数据最好了trim一下
抱朴守拙 2002-02-26
  • 打赏
  • 举报
回复
用Query
with query1 do
begin
close;
Sql.Clear;
Sql.add('select * from table where 用户名=输入的名 and 密码=输入的密码');
Open;
end;
if Query1.RecordCount>=1 then
通过
else
不通过;
thinkcat 2002-02-26
  • 打赏
  • 举报
回复
建议用Query做
var
inedit,password:string;
begin
inedit:=Trim(edit1.text);
with query1 do
begin
close;
sql.clear;
sql.add('select word from tablename');
sql.open;
end;
query1.First;
while not query1.eof do
begin
password:=query1.fieldbyname('word').asstring;
if inedit=password then //请问能这样判断两个字符串相等吗
query.next;
end;
passform.close;
end;

Liujc 2002-02-26
  • 打赏
  • 举报
回复
if trim(inedit) = trim(password) then
chenjiong 2002-02-26
  • 打赏
  • 举报
回复
少''编译是通不过的呀!
yangkunjie 2002-02-26
  • 打赏
  • 举报
回复
var
inedit,password:string;
begin
inedit:=trim(edit1.text);
adotable1.First;
password:=adotable1.fieldbyname('word').asstring;
if inedit=password then //请问能这样判断两个字符串相等吗
passform.close;
end;
chenjiong 2002-02-26
  • 打赏
  • 举报
回复
可以的。
另外,如果是多用户的话,可以先用edit1.text的值到表中查询一下,是否有有此用户名,如果有再继续,没有则告诉用户名不对。你的表中只有一个记录?否则用first是不行的。
thinkcat 2002-02-26
  • 打赏
  • 举报
回复
password:=adotable1.fieldbyname('word').asstring
111222 2002-02-26
  • 打赏
  • 举报
回复

只需要人民币20元,

你就可以获得本灌水机的程序和Visual C++源代码,

并获得永久性技术支持。

还等什么?灌水等着你!

就在今夜!元宵佳节!

(可怜我的信誉)

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧