如何在DBGrid持續顯示資料 |
尚未結案
|
jace0421
一般會員 發表:20 回覆:18 積分:7 註冊:2005-07-15 發送簡訊給我 |
請教各位大大,我的問題是:在edit內輸入數值,資料表的資料會顯示在DBGrid內,但是現在我有一個問題,那就是每次輸入數值時,前一筆的資料就會被洗掉,DBGrid永遠只能顯示一筆,我希望DBGrid可以一直顯示之前的資料。請問VCL物件要改嗎?還是程式也要做修改?
以下有程式碼,及相關圖。 請各位大大幫小妹解答。 void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Key==13)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
if(Edit1->Text=="")return;
ADOQuery1->SQL->Add("Select * from product Where P_ID=:ID");
ADOQuery1->Parameters->ParamByName("ID")->Value=Edit1->Text;
ADOQuery1->Prepared=true;
ADOQuery1->Open();
}
}
|
rogan321
高階會員 發表:21 回覆:307 積分:200 註冊:2003-05-15 發送簡訊給我 |
法1
改用GRID元件就好了
法2
ADOQuery1->SQL->Add("Select * from product Where P_ID=:ID");
ADOQuery1->Parameters->ParamByName("ID")->Value=Edit1->Text; 改成WHERE後面的參數用累加的String
ex:
ids=ids " and P_ID=" StrToInt(Edit1->Text);
....("Select * from product Where " ids);
|
jace0421
一般會員 發表:20 回覆:18 積分:7 註冊:2005-07-15 發送簡訊給我 |
|
rogan321
高階會員 發表:21 回覆:307 積分:200 註冊:2003-05-15 發送簡訊給我 |
每次查詢完後~將資料放進GRID中 不需要Datasource
fieldname=adoqry->Fieldbyname("fieldname")->AsString;
adoqry->Next();
StringGrid的使用範例:
StringGrid->ColCount=YourFieldCount 1;//設定陣列寬度 1 StringGrid->RowCount=YourRecordCount 1;//筆數 1 for(int i=0;i不知從上面的片段你可了解怎麼實做了嗎 |
jace0421
一般會員 發表:20 回覆:18 積分:7 註冊:2005-07-15 發送簡訊給我 |
rogan321,
法2:WHERE後面的參數用累加的String,以下是我寫的程式,會有debug void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Key==13)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
if(Edit1->Text=="")return;
String ids=ids+" and P_ID="+StrToInt(Edit1->Text);
ADOQuery1->SQL->Add("Select * from product Where "+ids);
ADOQuery1->Parameters->ParamByName("ID")->Value=Edit1->Text;
ADOQuery1->Prepared=true;
ADOQuery1->Open();
}
}
|
rogan321
高階會員 發表:21 回覆:307 積分:200 註冊:2003-05-15 發送簡訊給我 |
|
jace0421
一般會員 發表:20 回覆:18 積分:7 註冊:2005-07-15 發送簡訊給我 |
rogan321,請原諒我資質淺溥丫
引言: 1.String ids=ids " and P_ID=" StrToInt(Edit1->Text); 變數前面要加單引號:P_ID='" StrToInt(Edit1->Text) "'";(整數值可不用) 已做修改,但還是和上一個一樣的debug 2.你不覺得你的SQL語法怪怪的?~WHERE和第一個AND連在一起 Parameters可以拿掉~在有問題Prepared也拿掉 不知道您說的怪怪是… 。parameters不能拿掉吧,會顯示parambyname不是ADOQuery的member 3.第二個問題~沒錯~但是資料庫傳回的資料集要自己讀取放入Grid中 建議直接用中斷點除錯~馬上知道錯誤在哪一行 資料庫傳回的資料自己讀取放入grid中,是像你寫的for迴圈嗎? 這樣不就沒有連接到資料庫了嗎?那資料庫的資料表不就白白建立了呢?發表人 - jace0421 於 2005/08/31 11:11:54 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |