不太明白你的意思,你的意思是要在写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);
另外尽量不要使用sql.add。或者用之前先clear(可能你做了,只是没贴出代码)。尝试一下下面的语句。F_add.ADOQuery1.SQL.Text:='select * from gsfoods where 名称='''+Edit1.Text+''' and 规格='''+Edit2.Text+''' and 单价=' +StrToFloatDef(Edit6.Text,-1);
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)));