我有一个DBComboBox,他用来保存某一数据库内的所有的表的名称
还一个DBGrid,用于显示某表里的所有数据然后,我通过建立ADOConnection,DataSource,ADOQuery等将数据和控件关联起来(不是用代码是用控件的属性)程序运行后,DBComboBox正确的显示出了该数据库内的所有的表的名称
然后,DBGrid显示了当前这个表的所有数据但问题出来了,我想让DBComboBox改变选项后,DBGrid也根据DBComboBox的数据显示该表的所有数据
我是这么做的
procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'select * from ' + DBComboBox1.Text + ' ';
ADOQuery1.Open();
ADOQuery1.Active := true; DBGrid1.Refresh;
end;可发现DBComboBox的数据不会更新,该怎么处理呢?
还一个DBGrid,用于显示某表里的所有数据然后,我通过建立ADOConnection,DataSource,ADOQuery等将数据和控件关联起来(不是用代码是用控件的属性)程序运行后,DBComboBox正确的显示出了该数据库内的所有的表的名称
然后,DBGrid显示了当前这个表的所有数据但问题出来了,我想让DBComboBox改变选项后,DBGrid也根据DBComboBox的数据显示该表的所有数据
我是这么做的
procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'select * from ' + DBComboBox1.Text + ' ';
ADOQuery1.Open();
ADOQuery1.Active := true; DBGrid1.Refresh;
end;可发现DBComboBox的数据不会更新,该怎么处理呢?
ADOQuery1.SQL.Clear; //上面加一句
现在我加了一条
DataSource1.DataSet.Refresh;目前代码如下:
ADOQuery1.Active := false;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'select * from ' + DBComboBox1.Text + ' ';
ADOQuery1.Open();
ADOQuery1.Active := true;
DataSource1.DataSet.Refresh;结果DBComboBox选项一更新,程序就出错
555555555555
原来问题出在DBComboBox1我给换成普通的ComboBox,一切问题都解决了
也不用加什么DataSource1.DataSet.Refresh; 了感谢楼上提供的思路,给分