永发信息网

请问这段delphi代码哪里错了,我实在看不出来 提示 ';' not allowed before 'ELSE'

答案:2  悬赏:20  手机版
解决时间 2021-02-20 19:34
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 //第八行
最佳答案
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;
全部回答
在“else” 前面没有“;”号
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
王者荣耀哪个不是限定皮肤
欧米茄3210.50.00里面的三个小表盘怎么调呀?
海立方儿童水会怎么去啊,有知道地址的么
新成立的公司是什么时候开始申报纳税
慈溪农村商业银行五里分理处在哪里啊,我有事
有什么理由说服女朋友不剪短发
萨满教将人得病的原因分为几种()。
冠京顺达洗车中心怎么去啊,有知道地址的么
烽火战国中的超级精炼神石在那里可以得到?
日语 口没大赛 什么意思
制订服务计划的原则有()。A.要有服务对象的
最近在喝中药却总是感觉睡眠不足是怎么回事
欧亚汽车维修服务中心地址在什么地方,想过去
为什么笔记本电脑发热这么严重也没半小时吧,
请问,受五戒之后能否吃肉
推荐资讯
我第一次用工行存款机把卡放进去后不小心又按
纳妾记中秦芷若为什么要杀杨秋池
新飞 BCD-232HBY怎么调温度
有的人整体上看有时候有有时候没的有一点美感
征地后老人去世,是否享受征地补偿款?国家相
本田思铂睿 2017款 2.4L 豪华版怎么样,优点
云儿健身会所这个地址在什么地方,我要处理点
医学实验学毕业论文毕业论文,需要与实际工作
鵎鵼怎么读
二00七年农历八月≡ 阳历是几号
男,40岁,不慎右手被手榴弹炸伤1小时,包扎
莱阳市柏林庄镇工商所在什么地方啊,我要过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?