大家好,下面是一个delphi程序,运行后TDBGrid没有任何信息显示,但是案例中的结果是TDBGrid中有相关的结果,请问只是为什么??谢谢!
程序:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids, DB, DBTables;type
TForm1 = class(TForm)
Table1: TTable;
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ComboBox1: TComboBox;
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label1: TLabel;
Edit1: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
begin
DataSource1.DataSet :=query1;
query1.DatabaseName :='dbdemos';
Query1.SQL.Clear;
Query1.SQL.Add(Edit1.Text);
Query1.Open;
Application.MessageBox('just try it!','Warning',mb_ok);
end;procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Table1.Active :=false;
ComboBox1.Text :=ComboBox1.Items[ComboBox1.Itemindex];
Table1.TableName :=ComboBox1.Text;
Table1.TableType :=ttParadox;
Table1.Active :=True;
end;procedure TForm1.BitBtn2Click(Sender: TObject);
begin
self.Close;
end;procedure TForm1.RadioButton2Click(Sender: TObject);
begin
if RadioButton2.Checked then
begin
Edit1.Enabled :=true;
Bitbtn1.Enabled :=true;
ComboBox1.Enabled :=false;
end;
end;procedure TForm1.RadioButton1Click(Sender: TObject);
begin
ComBoBox1.Enabled :=true;
Bitbtn1.Enabled :=false;
Edit1.Enabled :=false;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Table1.DatabaseName :='dbdemos';
Edit1.Text :='';
Edit1.Enabled :=false;
ComboBox1.Text :='';
Datasource1.DataSet :=Table1;
Radiobutton1.Checked :=true;
session.GetTableNames('dbdemos','*.db',false,false,
ComboBox1.Items);
Bitbtn1.Enabled :=false;
end;end.
运行结果(有问题的结果)
程序:unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids, DB, DBTables;type
TForm1 = class(TForm)
Table1: TTable;
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ComboBox1: TComboBox;
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Label1: TLabel;
Edit1: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
begin
DataSource1.DataSet :=query1;
query1.DatabaseName :='dbdemos';
Query1.SQL.Clear;
Query1.SQL.Add(Edit1.Text);
Query1.Open;
Application.MessageBox('just try it!','Warning',mb_ok);
end;procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Table1.Active :=false;
ComboBox1.Text :=ComboBox1.Items[ComboBox1.Itemindex];
Table1.TableName :=ComboBox1.Text;
Table1.TableType :=ttParadox;
Table1.Active :=True;
end;procedure TForm1.BitBtn2Click(Sender: TObject);
begin
self.Close;
end;procedure TForm1.RadioButton2Click(Sender: TObject);
begin
if RadioButton2.Checked then
begin
Edit1.Enabled :=true;
Bitbtn1.Enabled :=true;
ComboBox1.Enabled :=false;
end;
end;procedure TForm1.RadioButton1Click(Sender: TObject);
begin
ComBoBox1.Enabled :=true;
Bitbtn1.Enabled :=false;
Edit1.Enabled :=false;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Table1.DatabaseName :='dbdemos';
Edit1.Text :='';
Edit1.Enabled :=false;
ComboBox1.Text :='';
Datasource1.DataSet :=Table1;
Radiobutton1.Checked :=true;
session.GetTableNames('dbdemos','*.db',false,false,
ComboBox1.Items);
Bitbtn1.Enabled :=false;
end;end.
运行结果(有问题的结果)
dbgrid和datasource有没有关联?