全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1391
推到 Plurk!
推到 Facebook!

我用ADOQuery和DBGrid,但Insert之後,DBGrid如何顯示資料??

尚未結案
venuslee
一般會員


發表:7
回覆:8
積分:3
註冊:2004-05-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-06 11:50:40 IP:218.169.xxx.xxx 未訂閱
我用ADOQuery做Insert資料,但Insert之後,DBGrid便無法顯示資料(原本可以),請問該如何做呢? 以下是我的程式碼: ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('insert into StudentScore '); ADOQuery1.SQL.Add('VALUES(''' aa ''' , ''' ab ''', ''' ac ''', ''' ad ''', ''' ae ''', ''' af ''', ''' ag ''')'); ADOQuery1.ExecSQL(); DBgrid1.Refresh;
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-06 12:03:13 IP:211.76.xxx.xxx 未訂閱
你在最後多加一行ADOQuery1.Open();試試看
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-06 12:17:03 IP:218.170.xxx.xxx 未訂閱
adoquery1.disablecontrol;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into StudentScore ');
ADOQuery1.SQL.Add('VALUES('''  aa  ''' , '''  ab  ''', '''  ac  ''', '''  ad  ''', '''  ae  ''', '''  af  ''', '''  ag  ''')');
ADOQuery1.ExecSQL();    adoquery1.sql.clear;//補充清除sql,感謝chih的提示
adoquery1.sql.add('select * from studentscore');
adoquery1.open;
adoquery1.enablecontrol;    DBgrid1.Refresh;    
發表人 - hahalin 於 2004/06/06 18:04:31
venuslee
一般會員


發表:7
回覆:8
積分:3
註冊:2004-05-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-06 12:17:12 IP:218.169.xxx.xxx 未訂閱
我有試過了,加入之後會出現錯誤訊息,但資料還是有Insert進去...該怎麼做呢..
chih
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-06 13:46:19 IP:218.165.xxx.xxx 未訂閱
如果你是只有一個ADOQuery的話..ADOQuery1-->DataSource1-->DBgrid1.. ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('insert into StudentScore '); ADOQuery1.SQL.Add('VALUES(''' aa ''' , ''' ab ''', ''' ac ''', ''' ad ''', ''' ae ''', ''' af ''', ''' ag ''')'); ADOQuery1.ExecSQL(); ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT * FROM StudentScore '); ADOQuery1.Open; TRY TRY SEE...
venuslee
一般會員


發表:7
回覆:8
積分:3
註冊:2004-05-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-06 20:49:26 IP:220.139.xxx.xxx 未訂閱
請問..如果我是在DBGrid上直接新增資料 那我的Insert指令該怎麼抓欄位值?? 2004/06/06 21:18:11 發表人 - venuslee 於 2004/06/06 21:18:52
mine
中階會員


發表:28
回覆:129
積分:56
註冊:2004-03-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-06 23:07:46 IP:218.175.xxx.xxx 未訂閱
在DBGrid裡新增資料要直接存回去可以試試操作dataset比較快吧@@ with Datasource1.dataset do begin Edit; Post; end; 試試囉@@ 發表人 - mine 於 2004/06/06 23:16:00
l630521
資深會員


發表:15
回覆:349
積分:372
註冊:2003-02-17

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-06-07 08:55:56 IP:210.66.xxx.xxx 未訂閱
妳用ADOQuery1.ExecSQL();是不會傳回資料集的,所以妳的DBGrid1如果DataSource是ADOQuery1的話,請像hahalin前輩所說的方法。 如果妳的DBGrid1連結的是另外一個DataSet的話,如ADOTable1 or ADOQuery2的話,而且妳Query的SQL的條件可以帶出妳剛新增的資料,那妳可以用
DBGrid1.DataSource.DataSet.Refresh;
or
TADODataSet(DBGrid1.DataSource.DataSet).Requery;
試試看這樣可不可以用.... Ian
terrychen
尊榮會員


發表:90
回覆:794
積分:501
註冊:2003-05-01

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-06-07 10:19:22 IP:210.59.xxx.xxx 未訂閱
您好: 如l630521兄所言,只要對DBGRID對應的dataset做requery就可以了,這是因為insert into是直接對資料表動作,要重新查詢,DBGrid才會有資料 ~~應無所住而生其心~~
系統時間:2024-06-29 11:04:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!