没有实现判断,代码哪里有问题?(50)

  • 主题发起人 主题发起人 machinxing
  • 开始时间 开始时间
M

machinxing

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TfrmRoomBalance.DBEdit1Change(Sender: TObject); begin with DM, DM.qryVIP do begin if qryVIP.Active then begin if (DBText7.Caption = qryVIP.FieldByName('VIPName').AsString) then DBedit2.Text := FloatToStr(StrToFloat(DBedit1.Text)* (qryVIP.FieldByName('Discount1').AsFloat)) end; end; end; 想法很简单:判断dbtext7的值是否与表vip中vipname相同,相同则执行dbedit1*discount1(vip中的字段) 这样写对吗?
 
TDBedit和数据库绑定了,赋值也没有用。改用TEdit控件吧。
 
楼上有道理。
 
dbtext7的值应该是DBText7.text吧,不是DBText7.Caption
 
逻辑不严密:if (qryVIP.FieldByName('VIPName').value<>Null) and (qryVIP.FieldByName('Discount1').value)<>Null) thenif (DBText7.Caption = qryVIP.FieldByName('VIPName').AsString) then DBedit2.Text := FloatToStr(StrToFloat(DBedit1.Text)* (qryVIP.FieldByName('Discount1').AsFloat))
 
谢谢各位的回答! 不过DBEdit 也可以赋值的啊, 就是很奇怪我这段代码加了 跟没加一样,现在有更新 麻烦高手们再看一下beginwith DM, DM.qryVIP do begin qryVIP.Close; qryVIP.SQL.Clear; qryVIP.SQL.Add('SELECT * FROM VIP'); qryVIP.SQL.Add('WHERE 0=0'); try qryVIP.open; if DBText7.Caption = DM.qryVIP.FieldByName('VIPName').AsString then DBedit2.Text := FloatToStr(StrToFloat(DBedit1.Text)* (qryVIP.FieldByName('Discount1').AsFloat)); except ShowMessage('数据集QryVIP打开错误'); end; end;这样对吗?
 
if DBText7.Caption ????还是if DBText7.text????老大看了没有啊?
 
呵呵 我试了 打DBText7时 不提示text ,可以提示Caption所以我想 Caption 应该可以吧
 
你修改数据时空间要进入edit状态,当直接在dbedit里修改的时候是自动的。你这样修改不知道对不对的,实在不行就把ededit2对应的字段,用edit,fieldbyname()。。修改吧。。
 
这样啊,呵呵 我试试看
 
从代码上看 你的SQL查询有问题,表名VIP和WHERE之间没空格
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部