不太明白你的意思,你的意思是要在写SQL语句的时候判断是否为空吗?就算可以判断也没法提示啊。建议可以在SQL之前,使用判断是否为空,或者可以使用StrToFloatDef转换。如果为空就取默认值-1。
另外尽量不要使用sql.add。或者用之前先clear(可能你做了,只是没贴出代码)。尝试一下下面的语句。F_add.ADOQuery1.SQL.Text:='select * from gsfoods where 名称='''+Edit1.Text+''' and 规格='''+Edit2.Text+''' and 单价=' +StrToFloatDef(Edit6.Text,-1);

解决方案 »

  1.   

    CSDN提交不了我的答案,没辄!
      

  2.   

    两个原因:
    1、edit6.Text为空
    2、double类型字段不要加单引号
     F_add.ADOQuery1.SQL.Add('select * from gsfoods where 名称='''+Edit1.Text+''' and 规格='''+Edit2.Text+''' and 单价='+StrUntils.IfThen(Trim(Edit6.Text)=EmptyStr,'0',Trim(Edit6.Text)));
      

  3.   

    edit6.Text不会为空吧'select * from gsfoods where 名称='''+Edit1.Text+''' and 规格='''+Edit2.Text+''' and 单价=' +Edit6.Text