delphi 语句在数据库新增一条数据

ADOtable1.Close;//连接adotable后做的事情ADOtable1.tablename:='customers';ADOtable1.Open;ifdm... ADOtable1.Close; //连接adotable后做的事情
ADOtable1.tablename:='customers';
ADOtable1.Open;
if dm1.hw4=1 then //确认为添加事件:1.
begin
with adotable1 do
begin
append; //delphi的方法添加数据
edit;
for i:=2 to 16 do
begin
s1:='edit'+inttostr(i);
xcom2:=findcomponent(s1);
if xcom2<>nil then
fields[i-2].AsString:=trim(Tedit(xcom2).Text);
end;
showmessage(edit2.text);
fieldbyname('Revenue').Asfloat:=strtofloat(edit17.text);
fieldbyname('Employees').Asinteger:=strtoint(edit18.text);
fieldbyname('Owner').ASstring:=trim(edit19.Text);
fieldbyname('StockNo').asstring:=trim(edit20.Text);

post;
end;
showmessage('succeed!');
end;

我是用循环写的,但是总要报错。
数据库建表语句中只有一个主键,数据我填在edit2里面,从edit2 到edit20,还有一个memo写备注的。但是我自己运行测试时,我只输入一个edit2会报错:

将edit17和edit18都加上自定义的0,并且填写好edit2时候。他又会报错:

我明明就把主键弄在了edit2上,为什么会这样?求解!
展开
 我来答
薛刚1982
2013-11-12
知道答主
回答量:13
采纳率:0%
帮助的人:12.2万
展开全部
十有八九是你的CustomerID,字段对应的不是fields[0],fields[0].fieldName看看是哪个字段。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式