把adoQuery1.SQL.Add('select cardid,name from member where cardid='+quotedstr(x); 如果找你那样写得话 如果EDIT框中输入得是数字就可以,如果是字就不行。
procedure TForm1.Button3Click(Sender: TObject); begin adoquery1.Close; adoquery1.SQL.Clear; adoQuery1.SQL.Add('select cardid,name from member where cardid=:a1'); adoquery1.parameters[1].value:=trim(edit1.text); adoquery1.open; if adoquery1.recordcount<1 then begin showmessage('当前记录不存在'); edit1.Clear; end;end;
procedure TForm1.Button3Click(Sender: TObject); var x:string; begin adoquery1.Close; adoquery1.SQL.Clear; x:=edit1.text; adoQuery1.SQL.Add('select cardid,name from member where cardid='); adoquery1.sql.add(x); adoquery1.Active:=true; adoquery1.open; if adoquery1.Eof then //这有点错误 if adoquery1.recordcount<1 thenbegin showmessage('当前记录不存在'); edit1.Clear; end;end;
procedure TForm1.Button3Click(Sender: TObject); var x:string; begin adoquery1.Close; adoquery1.SQL.Clear; x:=edit1.text; adoQuery1.SQL.Add('select cardid,name from member where cardid='); adoquery1.sql.add(x); adoquery1.Active:=true; adoquery1.open; try adoquery1.Last;//在进行这两不操作之前就是有记录Recordcount也是0 adoquery1.first; except adoquery1.close; end; if (adoquery1.recordcount<=0) or (adoquery1.Eof) then//同时判断recordcount begin showmessage('当前记录不存在'); edit1.Clear; end;end;
同志们用recodcount会降低性能啊! 还是select count(*)比较好...
procedure TForm1.Button3Click(Sender: TObject); var x:string; begin adoquery1.Close; adoquery1.SQL.Clear; x:=edit1.text; //adoQuery1.SQL.Add('select cardid,name from member where cardid='); //adoquery1.sql.add(x); 这两句有问题 adoQuery1.SQL.Add('select cardid,name from member where cardid="'+x+'"');//adoquery1.Active:=true; 这句可以不要 adoquery1.open; //if adoquery1.Eof then 这句有问题 if adoquery1.IsEmpty then begin showmessage('当前记录不存在'); edit1.Clear; end;end;
如果找你那样写得话
如果EDIT框中输入得是数字就可以,如果是字就不行。
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoQuery1.SQL.Add('select cardid,name from member where cardid=:a1');
adoquery1.parameters[1].value:=trim(edit1.text);
adoquery1.open;
if adoquery1.recordcount<1 then
begin
showmessage('当前记录不存在');
edit1.Clear;
end;end;
var
x:string;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
x:=edit1.text;
adoQuery1.SQL.Add('select cardid,name from member where cardid=');
adoquery1.sql.add(x);
adoquery1.Active:=true;
adoquery1.open;
if adoquery1.Eof then //这有点错误 if adoquery1.recordcount<1 thenbegin
showmessage('当前记录不存在');
edit1.Clear;
end;end;
adoquery1.first;试一试,我经常这样做得。
var
x:string;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
x:=edit1.text;
adoQuery1.SQL.Add('select cardid,name from member where cardid=');
adoquery1.sql.add(x);
adoquery1.Active:=true;
adoquery1.open;
try
adoquery1.Last;//在进行这两不操作之前就是有记录Recordcount也是0
adoquery1.first;
except
adoquery1.close;
end;
if (adoquery1.recordcount<=0) or (adoquery1.Eof) then//同时判断recordcount
begin
showmessage('当前记录不存在');
edit1.Clear;
end;end;
还是select count(*)比较好...
var
x:string;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
x:=edit1.text;
//adoQuery1.SQL.Add('select cardid,name from member where cardid=');
//adoquery1.sql.add(x); 这两句有问题
adoQuery1.SQL.Add('select cardid,name from member where cardid="'+x+'"');//adoquery1.Active:=true; 这句可以不要
adoquery1.open;
//if adoquery1.Eof then 这句有问题
if adoquery1.IsEmpty then
begin
showmessage('当前记录不存在');
edit1.Clear;
end;end;