项目中要求在combobox或dbcombobox的下拉列表中能显示某个数据库中的所有表的表名。我在窗口中用adoconnection和dbcombobox控件,取表名的代码如下:
        
    ADOConnection1.GetTableNames(DBComboBox1.Items);
    
    这样是可以取到所有的表的表名,但是我如果对数据库添加了新的表,那时在dbcombobox的下拉列表中就显示不出新加入的表。请教大家这要怎么才能解决,是不是要动态刷新数据库啊?

解决方案 »

  1.   

    用combobox吧,在CHANGE事件里面循环赋值进去就可以了
    要时时刷新的话,用Timer1设置时间事件吧
      

  2.   

    ADOConnection1.Close;
    ADOConnection1.Open;一下就可以了
      

  3.   

    1、用ADOConnection1.Close和ADOConnection1.Open还是不行啊,不能把最新生成的表加到combobox的下拉列表中。必须要重新运行程序才能加入。
    2、使用ADOQuery控件,再用SQL语句把所有的表名都取出来循环赋给DBComboBox,这样的办法也是不行,问题同上面一样。
    3、请教一下如何动态刷新啊!
      

  4.   

    可以在onDropdown事件下写入:
       DBComboBox1.clear;
       ADOConnection1.close;
       ADOConnection1.open;
       ADOConnection1.GetTableNames(DBComboBox1.Items);
      

  5.   

    谢谢楼上的各位了。大家的方法都是对的。是我用错地方了。
    我把这些方法都用在了FormCreate事件里了。