線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1841
推到 Plurk!
推到 Facebook!

DBGrid.OnTitleClick問題

答題得分者是:william
selina
一般會員


發表:39
回覆:64
積分:20
註冊:2002-12-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-11 15:28:25 IP:203.162.xxx.xxx 未訂閱
請問DBGrid的問題 我有一個DBGrid用來顯示table1中的資料 eg: studentID studentName class T001 betty A T002 vincent D T003 kim B 現在我想當使用者用mouse click column title 時,eg. click 'studentName' column之後,會把studentName中的名字作排序,然後再顯示出來 我現在不知道如何知道使用者有按下 title,和按下了那個column 麻煩各位幫幫忙~~~
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-11 15:32:45 IP:61.219.xxx.xxx 未訂閱
DBGrid有一個Event叫onTitleClick,該Event有一個參數column 剛好符合你的須求
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-11 15:37:28 IP:147.8.xxx.xxx 未訂閱
procedure TMainForm.DBGrid1TitleClick(Column: TColumn);
begin
    DBGrid1.DataSource.DataSet.IndexFieldName :=  Column.FieldName;
end;
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-11 17:45:01 IP:61.221.xxx.xxx 未訂閱
{if Column.Title.Caption = '姓名' then  begin    With qry do    Begin     CLose; SQL.Clear; SQL.Add('Select studentID, studentName, class from   class order by type_id,1');//紅的1代表studentID,如果是2代表studentName Open; End; end;
------
======================
昏睡~
不昏睡~
不由昏睡~
selina
一般會員


發表:39
回覆:64
積分:20
註冊:2002-12-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-11 17:47:22 IP:203.162.xxx.xxx 未訂閱
請問下面SQL語法那個地方錯了 orderName := Column.FieldName; Query1.close; Query1.SQL.clear; Query1.SQL.add('select * from student order by :SName'); Query1.ParamByName('SName').AsString := orderName; Query1.Prepare; Query1.Open; 錯誤訊息好像是在 order by...的地方 因為如果我把 :SName傳參數的地方換成 order by studentName就可以 是不是order by不能傳參數
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-12-11 17:52:45 IP:147.8.xxx.xxx 未訂閱
Maybe create the whole statement? e.g. Query1.SQL.add('select * from student order by ' orderName ';');
selina
一般會員


發表:39
回覆:64
積分:20
註冊:2002-12-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-12-11 18:00:35 IP:203.162.xxx.xxx 未訂閱
謝謝william
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-12-11 19:29:32 IP:211.75.xxx.xxx 未訂閱
Query1.ParamByName('SName').AsString := orderName; 將這一行.AsString 改成 .Value 試試看可不可以 Eric Lin
------
Eric Lin
系統時間:2024-11-22 20:00:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!