2012-08-25 45 views
-1

在项目中,我有db01.accdb数据库
db01DataSet通过添加新的数据源向导在2010年VS如何通过表名填充DropDownButton

我试图将项目添加到一个DdropDownButton

创建
private void Form1_Load(object sender, EventArgs e) 
{ 
foreach (DataTable dt in db01DataSet.Tables) { 
drop01.DropDownItems.Add(dt.TableName); 
}} 

错误:对象引用需要非静态字段,方法或属性

回答

1

尝试从数据库中获取表名:使用此查询

SELECT MSysObjects.Name AS table_name FROM MSysObjects WHERE (((Left([Name],1))<>"~") 
    AND ((Left([Name],4))<>"MSys") 
    AND ((MSysObjects.Type) In (1,4,6))) order by MSysObjects.Name 

这会给所有的MS Access表名...

+0

@ rook,我粘贴你的代码,并得到73错误 – Alegro

+0

@Alegro我只是在我的Northwind 2007.accdb数据库激发相同的查询。我能够检索所有表格。 –

1

尝试表名来代替:

drop01.DropDownItems.Add(dt.TableName); 

目前发布的代码虽然不会产生任何东西,因为数据集刚创建并没有任何表格。如果db01DataSet是由向导创建的,那么你不应该创建“新”,只要使用提供的那个。

+0

@ Lars,请参阅我更改的问题 – Alegro

+0

@Alegro哪一行代码导致错误? – LarsTech

+0

@ Lars,第三行。 'db01DataSet.Tables'红色加下划线 – Alegro