您可以很容易地在運行時很容易地更改由DBGrid顯示的數據集。有兩種方法:
1:使用分配給DBGrid.DataSource的單個DataSource並將DataSource.DataSet更改爲所需的DataSet。這是一個簡單的例子,在運行時進行所有分配。
procedure TForm1.FormCreate(Sender: TObject);
begin
DBGrid1.DataSource := DataSource1;
DataSet1.Active := true;
DataSet2.Active := true;
DataSet3.Active := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DataSource1.DataSet := DataSet1;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
DataSource1.DataSet := DataSet2;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
DataSource1.DataSet := DataSet3;
end;
2:爲每個DataSet使用一個DataSource並將DBGrid.DataSource更改爲所需的DataSource。這是一個簡單的例子,在運行時進行所有分配。
procedure TForm1.FormCreate(Sender: TObject);
begin
DataSource1.DataSet := DataSet1;
DataSource2.DataSet := DataSet2;
DataSource3.DataSet := DataSet3;
DataSet1.Active := true;
DataSet2.Active := true;
DataSet3.Active := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
DBGrid1.DataSource := DataSource1;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
DBGrid1.DataSource := DataSource2;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
DBGrid1.DataSource := DataSource3;
end;
如果定義了一個DBGrid列,數據集的結構需要是相同的,否則你將不得不更改列定義時更改數據集顯示。
我更喜歡每個DataSet使用一個DataSource,因爲它更靈活。
數據源綁定是否對數據集正確?一個簡單的dbgrid.DataSource:= Datasourcexy;應該夠了。 – bummi 2013-03-13 22:34:31