如何使用DevExpressDashboardDesigner.SelectedDataSource填写GridControl/DataGridView

How to use DevExpress DashboardDesigner.SelectedDataSource to fill the GridControl/DataGridView

我需要在 运行 时显示 GridControl/DataGridView 中的数据。因此,为此我在表单上使用了 devexpress DashboardDesigner 控件并将其可见性设置为 false。在单击按钮时,我调用了 DashoardDesigner.ShowDataSourceWizard() 到 运行 数据连接向导。向导完成后,我需要在 GridControl/DataGridView 上显示查询的输出。为此,我写

private void button1_Click(object sender, EventArgs e)
{
   dashboardDesigner1.ShowDataSourceWizard();

   SqlDataSource objSqlDataSource = (DevExpress.DataAccess.Sql.SqlDataSource)dashboardDesigner1.SelectedDataSource;

   dataGridView1.DataSource = objSqlDataSource;
   dataGridView1.DataMember = objSqlDataSource.Queries[0].Name;

   objSqlDataSource.Fill();
   dataGridView1.Refresh();
}

代码构建成功,但输出未显示在网格中。

仪表板设计器控件创建的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();
    }  
}