首页 > 解决方案 > 在运行时在我的应用程序中添加数据源

问题描述

我正在开发 Windows 窗体应用程序,并创建一个设计器应用程序。我使用 devexpress 工具进行设计。我可以在上面添加各种形状和文本标签,进一步我想将标签与数据库链接,所以我想将它连接到数据库。为此,我想在运行时添加与数据库的连接,稍后使用该数据源我需要将标签映射到特定表的列,以便可以从该列中选择标签值。当我打开该标签的属性时,我需要选择数据源、表、列。按 OK 后,标签将从中获取值。

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

标签: c#devexpressdevexpress-windows-ui

解决方案


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

要在没有仪表板的情况下引入所需的功能,请使用 SqlDataSource 组件和 SqlDataSourceUIHelper 类。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() 将允许您使用其查询构建器创建查询。


推荐阅读