各位大哥,请给小弟指点一下吧

smp22 2003-12-12 01:03:02
为什么输入第一条数据可以判断正确,以后的输入都提示错误,也就是说不能在整个表里找正确的数据。
x:=dbgrid1.DataSource.DataSet.recordcount;
for i:=1 to x do
begin
mm:=trim(table1.fieldbyname('name').asstring);
nn:=trim(table1.fieldbyname('pass').asstring);
if (mm=trim(edit1.text)) and (nn=trim(edit2.text)) then
begin
showmessage('正确,欢迎进入!');
exit;
end else
begin
showmessage('错误,请重新输入!');
exit;
end;
end;
end;
...全文
33 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nxfbccu 2003-12-12
  • 打赏
  • 举报
回复
x:=dbgrid1.DataSource.DataSet.recordcount;
table1.first;
for i:=1 to x do
begin
mm:=trim(table1.fieldbyname('name').asstring);
nn:=trim(table1.fieldbyname('pass').asstring);
if (mm=trim(edit1.text)) and (nn=trim(edit2.text)) then
begin
showmessage('正确,欢迎进入!');
exit;
end;
table1.next;
end;
if i = x + 1 then
begin
showmessage('错误,请重新输入!');
end;
smp22 2003-12-12
  • 打赏
  • 举报
回复
OK,可以了,谢谢各位!
smp22 2003-12-12
  • 打赏
  • 举报
回复
如改为楼主所说的这样,以后虽每次都能通过,都要提示前几次错误
mzzhf 2003-12-12
  • 打赏
  • 举报
回复
x:=dbgrid1.DataSource.DataSet.recordcount;
table1.first;//添加
for i:=1 to x do
begin
mm:=trim(table1.fieldbyname('name').asstring);
nn:=trim(table1.fieldbyname('pass').asstring);
if (mm=trim(edit1.text)) and (nn=trim(edit2.text)) then
begin
showmessage('正确,欢迎进入!');
exit;
{ end else
begin
showmessage('错误,请重新输入!');
exit; 如果这里的用EXIT,只有第一个记录可以通过}
end;
table1.next;//添加
end;
showmessage('错误,请重新输入!');//应该放在这里
exit;//这一句要不要都可以,看情况.
end;

BS 2003-12-12
  • 打赏
  • 举报
回复
x:=dbgrid1.DataSource.DataSet.recordcount;
table1.first;//添加
for i:=1 to x do
begin
mm:=trim(table1.fieldbyname('name').asstring);
nn:=trim(table1.fieldbyname('pass').asstring);
if (mm=trim(edit1.text)) and (nn=trim(edit2.text)) then
begin
showmessage('正确,欢迎进入!');
exit;
end else
begin
showmessage('错误,请重新输入!');
exit;
end;
table1.next;//添加
end;
end;

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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