数据库查询问题(50分)

  • 主题发起人 主题发起人 无题
  • 开始时间 开始时间

无题

Unregistered / Unconfirmed
GUEST, unregistred user!
我在写用户登陆时写的代码
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
query1.sql.add('select id,name,mima from user');
query1.sql.add('where name='+edit1.text);
query1.sql.add('and mima='''+edit2.text+'''');
query1.open;
if (query1.recordcount<>1) or (edit2.text<>query1.fieldvalues['mima']) then
begin
showmessage('口令不对');
edit1.setfocus;
end;
end;
可是执行时在edit1上输入name后按bitbtn1时会提示general sql error
too few parameters,expected 1
而我把where中name改为id(主键)后就可执行成功,为什么?
 
query1.sql.add('select id,name,mima from user');
改为query1.sql.add('select name,mima from user'); 试试
 
不行,我也试过了
 
query1.Close;
query1.SQL.Clear;
query1.sql.add('select id,name,mima from user');
query1.sql.add('where (name='''+edit1.text+''')');
query1.sql.add('and (mima='''+edit2.text+''')');//不过你这句多余了,要不要一样
query1.active:=true;
if (query1.recordcount<>1) or (edit2.text<>query1.fieldvalues['mima']) then
begin
showmessage('口令不对');
edit1.setfocus;
end;
end;
 
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
query1.sql.add('select id,name,mima from user');
query1.sql.add('where name='''+edit1.text'''');
query1.sql.add('and mima='''+edit2.text+'''');
query1.open;
if (query1.recordcount<>1) or (edit2.text<>query1.fieldvalues['mima']) then
begin
showmessage('口令不对');
edit1.setfocus;
end;
end;
 
接受答案了,不过想问一下为什么用id时可以,而name会出现这个错误?
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部