帮忙看看下面的代码错误在哪?
7年 2008-02-01 10:00:22 点击按钮没有反映,我想是adoquery查询记录的问题,但是我知道怎么改.各位帮帮忙!
procedure Tzhuce_form.ok_bitbtnClick(Sender: TObject);
var
name:string;
testStream:TMemoryStream;
begin
if ((class_edit.text='')or(num_edit.text='')or(username_edit.Text='')or(pw_edit.Text='')
or(combobox.Text='')) then
begin
application.messagebox('输入正确的信息!','提示',mb_ok);
class_edit.setfocus;
exit;
end;
adoquery1.Close;
adoquery1.sql.clear;
adoquery1.SQL.add('select * from student');
adoquery1.Open;
while not adoquery1.Eof do
begin
name:=trim(adoquery1.FieldValues['姓名']);
adoquery1.First; ///我想应该是这地方的问题
adoquery1.Next;
if(username_edit.text=name) then
begin
application.messagebox('用户名已存在!','提示',mb_ok);
username_edit.clear;
pw_edit.Clear;
//combobox1.clear;
//image1.Picture:=nil;
username_edit.setfocus;
exit;
end;
end;
testStream:=TMemoryStream.Create; //创建内存流
Image1.Picture.Graphic.SaveToStream(testStream);//将图片存入内存流
with ADOQuery1 do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text:='insert into student(班级名称,学号,姓名,密码,头像)' +
'VALUES(:班级名称,:学号,:姓名,:密码,:头像)';
parameters.paramByName('班级名称').Value:=class_edit.text;
parameters.paramByName('学号').Value:=num_edit.Text;
parameters.paramByName('姓名').Value:=username_edit.Text;
parameters.paramByName('密码').Value:=pw_edit.Text;
parameters.ParamByName('头像').LoadFromStream(testStream,ftBlob);
adoquery1.ExecSQL;
end;
showmessage('用户添加成功,请重新启动程序登陆!');
login_form.show;
self.Close;
end;