如何使用Edit搜尋? |
答題得分者是:GrandRURU
|
qwerabc
一般會員 發表:7 回覆:7 積分:2 註冊:2007-12-14 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
以下程式碼給你參考一下。
[code cpp] String a = "%" Edit1->Text "%"; Query1->SQL->Add("select * from Customers where firstname like '" a "'"); Query1->Open(); DBGrid1->DataSource=DataSource1; [/code] ===================引 用 qwerabc 文 章=================== 各位大大,小弟是BCB的初學者! 想請問如果要在Edit中隨便輸入值搜尋資料, 且按下buttom後在DBGrid內顯示所有相關的值,該怎麼做呢? 之前有嘗試用like的語法來搜尋, 但在buttom下的語法上,搞不太懂要怎樣著手撰寫>"< 是要把Edit內設成一個變數嗎?那跟資料庫如何做搭配呢? |
qwerabc
一般會員 發表:7 回覆:7 積分:2 註冊:2007-12-14 發送簡訊給我 |
感謝GrandRURU大大!
可順利執行! 但執行後,卻出現 "you have an error in your SQL syntax near 'select * from member where name like '%a%'" 等字眼的訊息視窗! 我覺得是Builder的問題,所以關掉builder直接執行.exe檔 但在搜尋的部分還是出現此問題! 該如何解決! ===================引 用 GrandRURU 文 章=================== 以下程式碼給你參考一下。 [code cpp] String a = "%" Edit1->Text "%"; Query1->SQL->Add("select * from Customers where firstname like '" a "'"); Query1->Open(); DBGrid1->DataSource=DataSource1; [/code] |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
我剛剛又重新建了一個新的專案來試,結果還是正常哩,你要不要再檢查:
一、你的程式碼是否有打錯? 二、Query元件中的「DatabaseName」內容是否有指到BDE的alias name(如BCDemos等)。 以上我的專案程式碼給你參考一下: unit.cpp [code cpp] #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { String a = "%" Edit1->Text "%"; Query1->SQL->Add("select * from employee where firstname like '" a "'"); Query1->Open(); } [/code] unit.h [code cpp] //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include #include #include #include <Forms.hpp><br />#include #include #include #include //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TQuery *Query1; TDBGrid *DBGrid1; TDataSource *DataSource1; TEdit *Edit1; TButton *Button1; TTable *Table1; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif [/code]
編輯記錄
GrandRURU 重新編輯於 2007-12-17 21:35:34, 註解 無‧
|
qwerabc
一般會員 發表:7 回覆:7 積分:2 註冊:2007-12-14 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
你在建ADO的時候有沒有先測試連線狀態?
先用ADOTABLE元件測試DBGRID會不會動,再改成QUERY,最後再改到BUTTON內。 還不行,你再把你的程式碼放上來看看吧。 ===================引 用 qwerabc 文 章=================== 我的程式碼沒有打錯!! 我仔細看了一下~~! 因為我是用MySQL來建立資料庫的!(用ADO元件連結) 而在執行搜尋的步驟時出現了 [ODBC 3.51 Driver][mysqld-3.23.56-nt]You have an error...... 所以,應該不是程式碼的問題! 只是我在mysql上測試like語法也沒有問題! 不曉得是不是在buttom下"select *....."這個字串無法被MySQL接受阿?? |
qwerabc
一般會員 發表:7 回覆:7 積分:2 註冊:2007-12-14 發送簡訊給我 |
因為我是先測試此方法行不行!
在加入欲顯示的功能! 所以將程式碼貼上去試! 但修改過後,執行上就出現之前的狀況! 已確定測試連線成功! 但錯誤仍存在~~><" [code cpp] void __fastcall TForm1::Button1Click(TObject *Sender) { String a = "%" Edit1->Text "%"; ADOQuery1->SQL->Add("select * from member where m_name like '" a "'"); ADOQuery1->Open(); DBGrid1->DataSource=DataSource1; } [/code] class TForm1 : public TForm { __published: // IDE-managed Components TDataSource *DataSource1; TADOQuery *ADOQuery1; TAutoIncField *ADOQuery1m_no; TStringField *ADOQuery1m_name; TStringField *ADOQuery1m_address; TStringField *ADOQuery1m_tel; TStringField *ADOQuery1m_birth; TStringField *ADOQuery1m_ID; TStringField *ADOQuery1m_sex; TADOConnection *ADOConnection1; TDBGrid *DBGrid1; TEdit *Edit1; TButton *Button1; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
qwerabc
一般會員 發表:7 回覆:7 積分:2 註冊:2007-12-14 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
qwerabc
一般會員 發表:7 回覆:7 積分:2 註冊:2007-12-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |