在 运行 时间在我的应用程序中添加数据源

Add a data source in my application at run-time

我正在处理 windows 表单应用程序,并创建一个设计器应用程序。我使用 devexpress 工具进行设计。 我可以在上面添加各种形状和文本标签,而且我想 link 带有数据库的标签,所以我想将它连接到数据库。 为此,我想在 运行 时间添加到数据库的连接,稍后使用该数据源我需要将标签映射到特定的 table 的列,以便可以从该列中选择标签值. 当我打开那个标签的属性时,我需要 select 数据源,table,列。按确定后,标签将从中获取值。

在后期阶段,我需要从任何连接的 table、视图或查询中读取数据。 在 devexpress 中,它为此提供了查询生成器,并且它具有数据源连接向导,但这仅在设计时有效,我需要在 运行 时间完成所有事情。

为了将数据库与应用程序连接起来,devexpress 提供了一个仪表板设计器,在其中可以使用向导轻松连接到任何数据库,但是使用其对象并调用其 ShowDataSourceWizard() 将调用该向导并向您展示查询编辑器也是如此,但完成后,它无法填充数据网格,因为由仪表板设计器控件创建的 DashboardSqlDataSource 组件只能在仪表板中使用,不能在其他控件中使用

要在没有仪表板的情况下引入所需的功能,请使用 SqlDataSource 组件和 SqlDataSourceUIHelper class。 SqlDataSourceUIHelper 提供了一个 API 来调用最终用户可用的各种工具来配置应用程序中的数据连接设置。

SqlDataSource objSqlDataSource = new SqlDataSource();
if(SqlDataSourceUIHelper.ConfigureConnection(objSqlDataSource))
{
    if(SqlDataSourceUIHelper.ManageQueries(objSqlDataSource))
    {
        dataGridView1.DataSource = objSqlDataSource;
        dataGridView1.DataMember = objSqlDataSource.Queries[0].Name;
        objSqlDataSource.Fill();
        dataGridView1.Refresh();
    }  
}

ConfigureConnection() 将打开用于连接到任何数据库的向导,而 ManageQueries() 将允许您使用其查询生成器创建查询。