如何在同一條件下...將資料庫所有符合的資料抓出來 |
尚未結案
|
bee0606
一般會員 發表:22 回覆:30 積分:10 註冊:2003-08-12 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
bee0606, 您好
不知您是要使用哪一種元件?
若是使用ADOQuery
ADOQuery->Close(); ADOQuery->SQL->Clear(); ADOQuery->SQL->Text = "select * from TableName where FieldA = 10 "; ADOQuery->Open();// TableName:要查詢的Table名稱,FieldA:Table欄位名稱 以上可查詢到TableName中FieldA符合條件的所有資料。 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之 |
bee0606
一般會員 發表:22 回覆:30 積分:10 註冊:2003-08-12 發送簡訊給我 |
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
bee0606大大,您好!
打攪您一下,請看看下面的程式。它演示了從一個指定的Access資料庫中抓出全部的資料,希望能對您的問題有所幫助!
依次在 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=15348281&CC=343259">
將ADOConnection1的LoginPrompt屬性設爲False;將ADOQuery1的Connection屬性設爲ADOConnection1;將DataSource1的DataSet設爲ADOQuery1;將DBGrid1的DataSource設爲DataSource1。
//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString sFileName; if(OpenDialog1->Execute()) { Edit1->Text = OpenDialog1->FileName; sFileName = Edit1->Text; ADOConnection1->Connected = False; ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sFileName + ";Mode=ReadWrite;Persist Security Info=False"; ADOConnection1->Connected = True; ADOConnection1->GetTableNames(ComboBox1->Items,False); } } //--------------------------------------------------------------------------- void __fastcall TForm1::ComboBox1Change(TObject *Sender) { AnsiString sSelectTable; int iSelectIndex; AnsiString sSql; iSelectIndex = ComboBox1->ItemIndex; sSelectTable = ComboBox1->Items->Strings[iSelectIndex]; sSql = "select * from " + sSelectTable; ShowMessage(sSql); ADOQuery1->Close(); ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add(sSql); ADOQuery1->Open(); } //---------------------------------------------------------------------------Run後如下: 請將您的code中的第3行改爲: ADOQuery1->SQL->Text = "select * from Excel where ComboBox1->Text = '男'"; 試試看現在能否運行,好嗎? =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获? |
bee0606
一般會員 發表:22 回覆:30 積分:10 註冊:2003-08-12 發送簡訊給我 |
感謝先進詳細的指導
AnsiString sSelectTable; int iSelectIndex; AnsiString sSql; AnsiString Edit_text; iSelectIndex = ComboBox1->ItemIndex; sSelectTable = ComboBox1->Items->Strings[iSelectIndex]; Edit_text = Edit1->Text; sSql = "select * from Excel where " + sSelectTable + "=" + Edit_text; ShowMessage(sSql); ADOQuery1->Active = false; ADOQuery1->Close(); ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add(sSql); //ADOQuery1->SQL->Text = "select * from Excel where ComboBox1->Text = 'Edit1->Text'"; //ADOQuery1->SQL->Text = "Select * from Excel where 'ComboBox1->Items->Strings[ComboBox1->ItemIndex]' = 'Edit1->Text' "; ADOQuery1->Open(); ADOQuery1->Active = true;我改成這樣...秀出來的SQL也感覺是對得..不過會出現這錯誤 感謝先進指導 |
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
不好意思,我也是一知半解,經常有謬誤,請將下句改爲:
sSql = "select * from Excel where " sSelectTable "='" Edit_text "'";
如果要賦值,可以參考下面的這種寫法:
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from Excel");
ADOQuery1->SQL->Add("where User_ID=:ID");
ADOQuery1->Parameters->ParamByName("ID")->Value = Edit1->Text;
ADOQuery1->Open();
=============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获? |
bee0606
一般會員 發表:22 回覆:30 積分:10 註冊:2003-08-12 發送簡訊給我 |
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |