【问题标题】:How to populate DropDownButton by table names如何按表名填充 DropDownButton
【发布时间】:2012-08-25 12:11:04
【问题描述】:

在项目中我有 db01.accdb 数据库
db01DataSet 是由 vs 2010 中的 Add New DataSource Wizard 创建的。

我正在尝试将项目添加到 DdropDownButton

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

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

【问题讨论】:

    标签: c# winforms datatable


    【解决方案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 访问表名称提供...

    【讨论】:

    • @Alegro 我只是在我的 Northwind 2007.accdb 数据库中激发了相同的查询。我能够检索所有表。
    【解决方案2】:

    改用 TableName:

    drop01.DropDownItems.Add(dt.TableName);
    

    虽然当前发布的代码不会产生任何结果,因为 DataSet 刚刚创建并且其中没有任何表。如果 db01DataSet 是由向导创建的,那么您不应创建“新”数据集,只需使用提供的数据集即可。

    【讨论】:

    • @Lars,请查看我更改后的问题
    • @Lars,第三行。 db01DataSet.Tables 带有红色下划线
    • @Alegro 您可能不必使用强类型数据集来执行此操作。您的 db01DataSet 直接引用了您通过向导创建时包含的表和视图。
    猜你喜欢
    • 2019-07-03
    • 1970-01-01
    • 2019-07-26
    • 2021-10-15
    • 1970-01-01
    • 2017-04-09
    • 2016-08-11
    • 2018-09-28
    • 2011-01-22
    相关资源
    最近更新 更多