var bh,a,b,c:string;
begin
bh:=trim(Edit1.Text);
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from jsj where 编号='+''''+bh+'''');
ADOQuery1.Open;
If ADOQuery1.RecordCount>0 then
begin
a:=ADOQuery1.fieldbyname('材料名称').AsString;
b:=ADOQuery1.fieldbyname('型号规格').AsString;
c:=ADOQuery1.fieldbyname('计量单位').AsString;
if(Edit2.Text<>a)then
begin
ShowMessage('请更改材料名称或编号');
Exit;
end
else if(Edit3.text<>b) then
begin
ShowMessage('请更改型号规格或编号');
Exit;
end
else if(combobox1.text<>c) then
begin
ShowMessage('请计量单位或编号');
Exit;
end
else if(Edit5.text='') then
begin
ShowMessage('请输入数量');
Edit5.SetFocus;
end
else
begin
try
with ADOQuery1 do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into jsj (编号,材料名称,型号规格,计量单位,数量) values (:编号,:材料名称,:型号规格,:计量单位,:数量)');
ADOQuery1.Parameters.ParamByName('编号').Value:=edit1.Text;
ADOQuery1.Parameters.ParamByName('材料名称').Value:=edit2.Text;
ADOQuery1.Parameters.ParamByName('型号规格').Value:=edit3.Text;
ADOQuery1.Parameters.ParamByName('计量单位').Value:=ComboBox1.Text;
ADOQuery1.Parameters.ParamByName('数量').Value:=edit5.Text;
ExecSQL;
end;
messagebox(handle,'添加成功','提醒',MB_OK);
select;
except
messagebox(handle,'数据异常','提醒',MB_OK);
end;
end;
else //这行出错
begin
end;
end;
if(Edit1.text='')then
begin
ShowMessage('请输入编号');
Edit1.SetFocus;
Exit;
end;
end;
提示55行这个 else出错,把else删掉后就正常了, else里面我还要写东西
这个else 我想对应的是这句
If ADOQuery1.RecordCount>0 then //第八行
请问这段delphi代码哪里错了,我实在看不出来 提示 ';' not allowed before 'ELSE'
答案:2 悬赏:20 手机版
解决时间 2021-02-20 19:34
- 提问者网友:嗝是迷路的屁
- 2021-02-20 10:43
最佳答案
- 五星知识达人网友:醉吻情书
- 2021-02-20 11:57
var
bh, a, b, c: string;
qty: integer;
begin
if (trim(Edit1.text) = '') then
begin
ShowMessage('请输入编号');
Edit1.text := '';
Edit1.SetFocus;
Exit;
end;
try
qty := StrtoInt(Edit5.text);
if qty < 0 then
begin
ShowMessage('数量错误!');
exit;
end;
except
ShowMessage('请输入数量');
Edit5.SetFocus;
exit;
end;
bh := trim(Edit1.Text);
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from jsj where 编号=' + '''' + bh + '''');
ADOQuery1.Open;
if ADOQuery1.RecordCount > 0 then
begin
a := ADOQuery1.fieldbyname('材料名称').AsString;
b := ADOQuery1.fieldbyname('型号规格').AsString;
c := ADOQuery1.fieldbyname('计量单位').AsString;
if (Edit2.Text <> a) then
begin
ShowMessage('请更改材料名称或编号');
Exit;
end
else if (Edit3.text <> b) then
begin
ShowMessage('请更改型号规格或编号');
Exit;
end
else if (combobox1.text <> c) then
begin
ShowMessage('请计量单位或编号');
Exit;
end;
try
with ADOQuery1 do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into jsj (编号,材料名称,型号规格,计量单位,数量) values (:编号,:材料名称,:型号规格,:计量单位,:数量)');
ADOQuery1.Parameters.ParamByName('编号').Value := edit1.Text;
ADOQuery1.Parameters.ParamByName('材料名称').Value := edit2.Text;
ADOQuery1.Parameters.ParamByName('型号规格').Value := edit3.Text;
ADOQuery1.Parameters.ParamByName('计量单位').Value := ComboBox1.Text;
ADOQuery1.Parameters.ParamByName('数量').Value := edit5.Text;
ExecSQL;
end;
messagebox(handle, '添加成功', '提醒', MB_OK);
select;
except
messagebox(handle, '数据异常', '提醒', MB_OK);
end;
end;
end;
bh, a, b, c: string;
qty: integer;
begin
if (trim(Edit1.text) = '') then
begin
ShowMessage('请输入编号');
Edit1.text := '';
Edit1.SetFocus;
Exit;
end;
try
qty := StrtoInt(Edit5.text);
if qty < 0 then
begin
ShowMessage('数量错误!');
exit;
end;
except
ShowMessage('请输入数量');
Edit5.SetFocus;
exit;
end;
bh := trim(Edit1.Text);
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select * from jsj where 编号=' + '''' + bh + '''');
ADOQuery1.Open;
if ADOQuery1.RecordCount > 0 then
begin
a := ADOQuery1.fieldbyname('材料名称').AsString;
b := ADOQuery1.fieldbyname('型号规格').AsString;
c := ADOQuery1.fieldbyname('计量单位').AsString;
if (Edit2.Text <> a) then
begin
ShowMessage('请更改材料名称或编号');
Exit;
end
else if (Edit3.text <> b) then
begin
ShowMessage('请更改型号规格或编号');
Exit;
end
else if (combobox1.text <> c) then
begin
ShowMessage('请计量单位或编号');
Exit;
end;
try
with ADOQuery1 do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into jsj (编号,材料名称,型号规格,计量单位,数量) values (:编号,:材料名称,:型号规格,:计量单位,:数量)');
ADOQuery1.Parameters.ParamByName('编号').Value := edit1.Text;
ADOQuery1.Parameters.ParamByName('材料名称').Value := edit2.Text;
ADOQuery1.Parameters.ParamByName('型号规格').Value := edit3.Text;
ADOQuery1.Parameters.ParamByName('计量单位').Value := ComboBox1.Text;
ADOQuery1.Parameters.ParamByName('数量').Value := edit5.Text;
ExecSQL;
end;
messagebox(handle, '添加成功', '提醒', MB_OK);
select;
except
messagebox(handle, '数据异常', '提醒', MB_OK);
end;
end;
end;
全部回答
- 1楼网友:鱼芗
- 2021-02-20 12:17
在“else” 前面没有“;”号
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯