用if adoquery1.Fields[2].IsNull then 
或者用if trim(adoquery1.Fieldbyname('对手一').AsString)='' then 
试一下

解决方案 »

  1.   

    adoquery1.Fieldbyname('对手一').value:=null;
      

  2.   

    if lenght(trim(adoquery1.Fieldbyname('对手一').AsString))=0 then
            begin
              edit1.Text:=adoquery1.Fields[0].AsString;
              if adoquery1.Fields[1].AsBoolean=true then
              edit2.text:='先'
              else
              edit2.Text:='后';
          end
       else
          showmessage('此人的对手已经录入!');
      

  3.   

    if length(trim(adoquery1.Fieldbyname('对手一').AsString))>=1 then
          showmessage('此人的对手已经录入!')
      else  
      begin
         edit1.Text:=adoquery1.Fields[0].AsString;
         if adoquery1.Fields[1].AsBoolean=true then
         edit2.text:='先'
         else
         edit2.Text:='后';
      end
    也许更好
      

  4.   

    问题出在adoquery1数据集本身,程序没错,只是sql的参数是"分数一=:aa";
    仔细测试下adoquery1.Fieldbyname('对手一').AsString到底有没有再说