我的思路是:首先用ADOConnection1.GetTableNames(Combobox1.Items,False)取得数据表名称,然后在ComboBox里面选择数据表并显示内容在DBGrid里面,用DBEdit显示DBGrid当前记录指定字段的内容,源码如下:procedure TForm1.ComboBox1Change(Sender: TObject);
var
Tablename:string;
sl:TStringList;
begin
sl:=TStringList.Create;
Tablename:= ComboBox1.Text;
ADOTable1.Close;
ADOTable1.TableName:=Tablename;
ADOTable1.Open;
ADOConnection1.GetFieldNames(Tablename,sl);
DBEdit1.DataField:=sl.Strings[0]; //绑定第一个字段
DBEdit2.DataField:=sl.Strings[1]; //绑定第二个字段
sl.Free;
end; ComboBox选择第一次和第二次都没有问题,第三次的话就显示错误了,意思为DataField的字段还是第二次选择的那个数据表的字段,当前数据表没有这个字段,可是我把DBEdit1.DataField改为DBEdit1.Text,显示却完全正确。不知道是哪里出错,请哪位帮忙看看!
var
Tablename:string;
sl:TStringList;
begin
sl:=TStringList.Create;
Tablename:= ComboBox1.Text;
ADOTable1.Close;
ADOTable1.TableName:=Tablename;
ADOTable1.Open;
ADOConnection1.GetFieldNames(Tablename,sl);
DBEdit1.DataField:=sl.Strings[0]; //绑定第一个字段
DBEdit2.DataField:=sl.Strings[1]; //绑定第二个字段
sl.Free;
end; ComboBox选择第一次和第二次都没有问题,第三次的话就显示错误了,意思为DataField的字段还是第二次选择的那个数据表的字段,当前数据表没有这个字段,可是我把DBEdit1.DataField改为DBEdit1.Text,显示却完全正确。不知道是哪里出错,请哪位帮忙看看!
解决方案 »
- [急]SQLDMO带进度条恢复数据库的问题
- delphi如何实现多语言支持
- 应用层发布失败!请帮忙看一下。
- var buf:array[0..1023] of char; callinfo:TLineCallInfo absolute buf;请问这是什么意思?
- 200分求 如何在1个目录中搜索多个文件!还有100分在Delphi VCL组件开发及应用中,在线等
- 如何个listview最后一行最后一列付值
- 菜鸟问题,送分!
- 有关FileMapping中,MapViewOfFile()的问题.大家帮帮忙.
- KYLIX编译的程序如何运行?
- 请教数据库高手?
- 2007年,Delphi板块有什么亮点吗?
- 求动态库的调用方法
ADOConnection1.GetFieldNames(Tablename,sl);
DBEdit1.DataField :=sl.Strings[0]; //绑定第一个字段
DBEdit2.DataField:=sl.Strings[1]; //绑定第二个字段 你應該在 ADOTable1.Open 前 設定
DBEdit1.DataField := '' ;
DBEdit2.DataField := '' ;
....這樣才不會有找不到字段的錯誤。