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

搜尋各個欄位

答題得分者是:Stallion
qwerabc
一般會員


發表:7
回覆:7
積分:2
註冊:2007-12-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-22 23:20:13 IP:122.125.xxx.xxx 訂閱
請教各位高手!
我想將Edit鍵入的keyword在各欄位搜尋,
若找到類似的字就在DBGrid顯示出來,
小弟有寫一些,但有些盲點,
不知如何著手!請各位大大幫忙!!
(b值為各欄位,if 的部份若欄位值有和keyword相同的話)
[code cpp]
String a = "%" Edit1->Text "%";
String b[7];
b[1]="m_name";
b[2]="m_address";
b[3]="m_tel";
b[4]="m_birth";
b[5]="m_ID";
b[6]="m_sex";
int i;
for(i=0;i<=6;i ){
ADOQuery1->SQL->Add("select * from member where '" b[i] "' like '" a "'");
if(ADOQuery1 == Edit1->Text)
{ ADOQuery1->Open();
DBGrid1->DataSource=DataSource1;
}
}
[/code]
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-12-23 07:55:47 IP:75.41.xxx.xxx 未訂閱
[code cpp]
String a = "%" Edit1->Text "%";
String b[6];
b[0]="m_name";
b[1]="m_address";
b[2]="m_tel";
b[3]="m_birth";
b[4]="m_ID";
b[5]="m_sex";
int i;
for(i=0;i<=5;i )
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from member where '" b[i] "' like '" a "'");
ADOQuery1->Open();
if ( ADOQuery1.FieldByName("YourCol")->AsString == Edit1->Text )
{
// process your dataset here.
}
}
[/code]
qwerabc
一般會員


發表:7
回覆:7
積分:2
註冊:2007-12-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-12-23 22:05:37 IP:122.125.xxx.xxx 訂閱
感謝Stallion版主回應!
不過我試完,似乎不太能用耶!
我將"YourCol"改成b[i] (YourCol是一個元件或欄位名還是指令嗎= =?)
// process your dataset here.
keyin→DBGrid1->DataSource=DataSource1;
不曉得是我誤會版主大大的意思,還是如何?
所以,在執行上有出現錯誤!無法搜尋!
嘗試許久也都是找不到或錯誤!><
另因為我是Borland c ADOQUERY是以"->"取代"."
但這應該沒差異!

===================引 用 Stallion 文 章===================
[code cpp]
if ( ADOQuery1.FieldByName("YourCol")->AsString == Edit1->Text )
{
// process your dataset here.
}
}
[/code]
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-12-24 06:43:38 IP:75.42.xxx.xxx 未訂閱
[code cpp]
String a = "%" Edit1->Text "%";
String b[6];

b[0]="m_name";
b[1]="m_address";
b[2]="m_tel";
b[3]="m_birth";
b[4]="m_ID";
b[5]="m_sex";

for(int i=0;i<=5;i )
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select " b[i] " from member where " b[i] " like " a);
ADOQuery1->Open();
if ( ADOQuery1->RecordCount() > 0 )
{
// process your dataset here.
}
}
[/code]
編輯記錄
Stallion 重新編輯於 2007-12-24 06:44:12, 註解 無‧
qwerabc
一般會員


發表:7
回覆:7
積分:2
註冊:2007-12-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-12-25 22:17:22 IP:122.125.xxx.xxx 訂閱
請問版大!
RecordCount的功能是什麼阿?
是指將搜尋到值的筆數紀錄下來若大於0
就執行步驟嗎?
似乎是這部份會有問題!
出現句法錯誤的視窗(可執行但搜尋時就錯誤)
(不好意思!新手學習!請版大指教!)

系統時間:2024-04-26 18:48:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!