下面的代码是先判断学号是否存在,存在就退出,不存在就继续添加新的内容,编译能通过,只是添加数据老是报错,大家帮我看看代码错在什么地方,adoquery1.Close;
adoquery1.sql.clear;
adoquery1.sql.text:='select xh from xsxx where xh='''+edit1.text+'''';
if (adoquery1.RecordCount > 0) then
begin
messagedlg('该学号已经存在',mtwarning,[mbok],0);
abort;
end
else
begin
ADOquery1.open;
ADOQuery1.insert; //添加
ADOQuery1.FieldByName('xh').AsString := Edit1.Text;
ADOQuery1.FieldByName('xm').AsString := Edit2.Text;
ADOQuery1.FieldByName('bj').AsString := Edit3.Text;
ADOQuery1.FieldByName('jg').AsString := Edit4.Text;
ADOQuery1.Post;
end;
adoquery1.sql.clear;
adoquery1.sql.text:='select xh from xsxx where xh='''+edit1.text+'''';
if (adoquery1.RecordCount > 0) then
begin
messagedlg('该学号已经存在',mtwarning,[mbok],0);
abort;
end
else
begin
ADOquery1.open;
ADOQuery1.insert; //添加
ADOQuery1.FieldByName('xh').AsString := Edit1.Text;
ADOQuery1.FieldByName('xm').AsString := Edit2.Text;
ADOQuery1.FieldByName('bj').AsString := Edit3.Text;
ADOQuery1.FieldByName('jg').AsString := Edit4.Text;
ADOQuery1.Post;
end;
.....ADOQuery可以这样写????
上面写对了下面错的一塌糊涂哦
你insert??insert到哪张表里???
同学,把ADOQuery当成ADOTable用了吧?
adoquery1.sql.text:='select xh from xsxx where xh='''+edit1.text+'''';
//
if (adoquery1.RecordCount > 0) then
adoquery1.sql.text:='select xh from xsxx where xh='''+edit1.text+'''';
//你还没有Open,执行adoquery1.RecordCount 有意义吗?
if (adoquery1.RecordCount > 0) then
adoquery1.sql.clear;
adoquery1.sql.text:='select * from xsxx where xh='''+edit1.text+''''; //改为*
adoquery1.open; // 没打开表
if (adoquery1.RecordCount > 0) then
begin
messagedlg('该学号已经存在',mtwarning,[mbok],0);
abort;
end
else
begin
ADOquery1.open;
ADOQuery1.insert; //添加
ADOQuery1.FieldByName('xh').AsString := Edit1.Text;
ADOQuery1.FieldByName('xm').AsString := Edit2.Text;
ADOQuery1.FieldByName('bj').AsString := Edit3.Text;
ADOQuery1.FieldByName('jg').AsString := Edit4.Text;
ADOQuery1.Post;
end;或者都直接用sql语句来执行
adoquery1.sql.clear;
adoquery1.sql.text:='select xh from xsxx where xh='''+edit1.text+'''';
adoquery1.open; // 没打开表
if (adoquery1.RecordCount > 0) then
begin
messagedlg('该学号已经存在',mtwarning,[mbok],0);
abort;
end
else
begin
adoquery1.Close;
adoquery1.sql.clear;
adoquery1.sql.text:='insert xsxx(xh,xm,bj,jg) values('''+edit1.text+''','''+edit2.text+''','''+edit3.text+''','''+edit4.text+''')';
adoquery1.execsql;
end;
ADOQuery1.edit; //添加
ADOQuery1.FieldByName('xh').AsString := Edit1.Text;
ADOQuery1.FieldByName('xm').AsString := Edit2.Text;
ADOQuery1.FieldByName('bj').AsString := Edit3.Text;
ADOQuery1.FieldByName('jg').AsString := Edit4.Text;
ADOQuery1.Post;
看看
adoquery1.sql.text:='insert xsxx(xh,xm,bj,jg) values('''+edit1.text+''','''+edit2.text+''','''+edit3.text+''','''+edit4.text+''')';