delphi根据填写的字符串连接数据库并读取数据库的表显示到ComboBox和并根据combobox选择的表将字段及数据显示到TDBGrid
时间: 2024-04-16 08:26:55 浏览: 156
在phi中,你可以根据填写的字符串连接到数据库,并将数据库的表显示到ComboBox控件中。然后,根据用户选择的表名,将字段及数据显示到TDBGrid控件中。以下是一个示例代码:
```delphi
procedure TForm1.Button1Click(Sender: TObject);
var
ConnectionString: string;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
begin
// 构建连接字符串
ConnectionString := Edit1.Text; // 假设连接字符串由一个Edit控件输入
// 创建ADO连接组件
ADOConnection1 := TADOConnection.Create(Self);
try
// 设置连接字符串
ADOConnection1.ConnectionString := ConnectionString;
// 连接数据库
ADOConnection1.Connected := True;
// 创建ADOTable组件
ADOTable1 := TADOTable.Create(Self);
ADOTable1.Connection := ADOConnection1;
// 打开系统的表
ADOTable1.TableName := 'sysobjects';
ADOTable1.Open;
// 将表名显示到ComboBox控件
ComboBox1.Items.Clear;
while not ADOTable1.Eof do
begin
ComboBox1.Items.Add(ADOTable1.FieldByName('name').AsString);
ADOTable1.Next;
end;
// 设置ComboBox默认选择第一个表名
if ComboBox1.Items.Count > 0 then
ComboBox1.ItemIndex := 0;
// 关闭并释放ADOTable组件
ADOTable1.Close;
ADOTable1.Free;
except
on E: Exception do
ShowMessage('连接数据库出错: ' + E.Message);
end;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
var
ConnectionString: string;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
begin
// 构建连接字符串
ConnectionString := Edit1.Text; // 假设连接字符串由一个Edit控件输入
// 创建ADO连接组件
ADOConnection1 := TADOConnection.Create(Self);
try
// 设置连接字符串
ADOConnection1.ConnectionString := ConnectionString;
// 连接数据库
ADOConnection1.Connected := True;
// 创建ADOTable组件
ADOTable1 := TADOTable.Create(Self);
ADOTable1.Connection := ADOConnection1;
// 设置要读取的表名
ADOTable1.TableName := ComboBox1.Text; // ComboBox控件用于选择表名
// 打开表
ADOTable1.Open;
// 显示字段和数据到TDBGrid控件
DBGrid1.DataSource := DataSource1;
DataSource1.DataSet := ADOTable1;
except
on E: Exception do
ShowMessage('连接数据库出错: ' + E.Message);
end;
end;
```
在上述示例代码中,我们假设连接字符串由一个名为Edit1的Edit控件输入。点击按钮后,会获取Edit1中的连接字符串,并使用ADO连接组件连接到数据库。然后,我们创建一个ADOTable组件,并打开系统的表(sysobjects),将表名显示到ComboBox控件中。用户选择ComboBox中的表名后,会触发ComboBox的OnChange事件,在事件处理程序中,我们再次连接到数据库,并根据用户选择的表名打开表,并将字段和数据显示到TDBGrid控件中。
请确保在设计时已经正确设置了相关的数据库组件(如ADOConnection、ADOTable、DataSource和DBGrid)。
希望这可以帮助到你!如果你有任何其他问题,请随时提问。
阅读全文