線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1041
推到 Plurk!
推到 Facebook!

請問一下各位大大~當計算dbgrid欄位時~會主動刪除我一比資料可否請高手相救

尚未結案
suzukiyamaru
一般會員


發表:18
回覆:8
積分:5
註冊:2003-06-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-25 22:33:04 IP:218.160.xxx.xxx 未訂閱
請問一下大大 假如我dbgrid中有3筆資料時,當我按下計算的button時產生計算的結果~但是同時我dbgrid中的資料也只剩下2筆了!!但是所計算的值還是3筆時所計算的答案~是否我程式有問題呢!請各位大大幫忙看一下 procedure Torder.Button2Click(Sender: TObject); var price,amount:integer; begin price:=0; amount:=0; table2.First; While not table2.Eof do begin price:=price table2.Fields[3].AsInteger; amount:=amount table2.Fields[5].AsInteger; table2.Next; end; label9.Caption:=inttostr(price*amount) ; end;
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-25 23:24:57 IP:61.62.xxx.xxx 未訂閱
是不是 DBGrid 顯示的問題呢? 可以試著在迴圈後再加一個 table2.First; 試看看!
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-26 00:15:34 IP:63.84.xxx.xxx 未訂閱
您好!    您的程式碼應沒有問題.    迴圈結束后, 資料錄指針會在末筆資料上(即第三筆資料), 第一筆資料可能是沒有顯示出來, 除了timhuang大大提供的方法之外, 也可試試在迴圈結束后加上: Table2.Close; Table2.Open; 或者: Table2.Refresh; 來更新顯示的資料.    參考看看!    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-26 14:53:15 IP:61.221.xxx.xxx 未訂閱
suzukiyamaru 你好: 可以告知dbgrid與table2的關係,跟table2裡面查詢的條件嗎?
------
======================
昏睡~
不昏睡~
不由昏睡~
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-26 17:17:55 IP:218.164.xxx.xxx 未訂閱
procedure Torder.Button2Click(Sender: TObject); var price,amount:integer; begin price:=0; amount:=0; table2.First; While not table2.Eof do begin price:=price table2.FieldByName('A').AsInteger;//紅色部分請改為你相對應的欄名 amount:=amount table2.FieldByName('B').AsInteger; table2.Next; end; label9.Caption:=inttostr(price*amount) ; end; TRY TRY SEE.. 發表人 - chih 於 2003/11/26 17:21:22
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-26 17:29:42 IP:211.96.xxx.xxx 未訂閱
會不會你的table2的event存在不該有的程式~~?你最好逐行trace一下你的程式~~ 我懂的不多,懂的也不盡然是最佳的寫法,但求我懂的東西,能在大家的討論中,愈辯愈明~
suzukiyamaru
一般會員


發表:18
回覆:8
積分:5
註冊:2003-06-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-26 22:19:12 IP:218.160.xxx.xxx 未訂閱
剛剛我試過各位大大所說的方法可是還是不能也!!怎麼辦呢! 我的table2也沒有其他的event
suzukiyamaru
一般會員


發表:18
回覆:8
積分:5
註冊:2003-06-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-11-26 23:03:46 IP:218.160.xxx.xxx 未訂閱
各位熱心的大大們 我又發現了一個新問題了! 就是說當我資料只有一筆時 ex:單價=10訂購數量=10 算出的總金額=100 但當我變2筆時 ex:編號一 單價=10訂購數量=10 算出的總金額=100 編號二 單價=10訂購數量=10 算出的總金額=100 算出的總金額卻變為400
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-11-26 23:25:04 IP:61.62.xxx.xxx 未訂閱
這樣真的看不出來問題在那裡, 可以將你的程式上傳上來嗎? 另外你的資料庫是什麼種類的呢?
KEVINDDT
一般會員


發表:0
回覆:1
積分:0
註冊:2003-11-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-11-27 04:33:32 IP:24.67.xxx.xxx 未訂閱
For 2nd Question: Wrong Calculation Procedure in While-loop Make another variable recordAmount : Double; in While-loop For 1st Question: Try To Pop out a Simple MessageBox at the end of Button2Click Event Return Number Of Record In the TDBGrid.... If it is the same record counts, try Refresh... if it is not, something wrong in your codes
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-11-27 08:53:44 IP:211.96.xxx.xxx 未訂閱
檢查一下你的程式里面是不是有錯誤或多餘的迴圈(for .. 或while) 不過建議你把你的程式貼出來先,讓大家幫你分析囉 如果你這樣把table逐筆讀出逐筆計算的話,會不會太傷效率咧?可能的話,你用個query元件來做這樣的事,用一句SQL查詢句就可以完成你要的工作,效率會差很多哦~~~~ query2.close; query2.sql.clear; query2.sql.add('select sum(price*amount) as totalsum from table2'); query2.sql.add('where orderno>=0 and orderno<=100'); //示範查詢條件,依自己的需求來定 query2.execsql; query2.open; label9.caption:=query2.fieldbyname('totalsum').asString; query2.close; 我懂的不多,懂的也不盡然是最佳的寫法,但求我懂的東西,能在大家的討論中,愈辯愈明~
suzukiyamaru
一般會員


發表:18
回覆:8
積分:5
註冊:2003-06-09

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-11-28 00:50:32 IP:218.160.xxx.xxx 未訂閱
japhenchen 謝謝你已經可以跑了~我想應該是我資料庫的問題^^
系統時間:2024-11-23 0:05:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!