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

請教如何於DBGrid上抓取某個欄位的值阿

尚未結案
winla
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-10 17:56:26 IP:211.76.xxx.xxx 未訂閱
比如說DBGrid中有5個欄位 每個欄位有10筆資料 那要如何抓到第二個欄位的第三個資料值阿.. 請各為先知賜教... 發表人 - winla 於 2003/12/10 18:04:17
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-11 17:12:24 IP:210.65.xxx.xxx 未訂閱
Hi:    基本上,DBGrid 內的值是與 DataSet 上的值是一樣的,因此你可以直接先 locate 到你要的那一筆資料,再取得資料
移動紀錄
(DBGrid1.DataSource.DataSet).First;
(DBGrid1.DataSource.DataSet).MoveBy(第 N 筆資料 - 1);
取得資料值
(DBGrid1.DataSource.DataSet).FieldByName(DBGrid1.Columns.Items[第 N 個欄位 - 1].FieldName).AsString;
或
DBGrid1.Columns.Items[第 N 個欄位 - 1].Field.Value;
-------------------------------- 小弟才疏學淺,若有謬誤請不吝指教 --------------------------------
------
Fishman
winla
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-11 18:14:52 IP:211.76.xxx.xxx 未訂閱
主要問題已經解決了...thx    可否在請教一下...    欲連續取得資料值共50筆(Form1->ADOTable1->RecordCount=50),    for(i=0;i<Form1->ADOTable1->RecordCount;i++)   {     DBGrid1->DataSource->DataSet->MoveBy(i);           Memo2->Lines->Add(DBGrid1->Columns->Items[1]->Field->Value);     為何上面這行每次取得的資料都只有不連續的十筆,其他的都取到最後一筆的資料 取得資料位置01  02  04  07  11  16  22  29  37  46  50  50  50........    另一個寫法     Memo2->Lines->Add((Form1->DataSource1->DataSet->FieldByName   (DBGrid1->Columns->Items[1]->FieldName).AsString); FieldName型態後面無法指定為AsString , 若不指定為AsString又出現下列錯誤 [C++ Error] main.cpp(117): E2034 Cannot convert 'TField *' to 'AnsiString'     }    可否再次賜教嗎...感謝     發表人 - winla 於 2003/12/11 18:58:09
系統時間:2024-05-02 13:35:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!