如何使用DevExpress DashboardDesigner.SelectedDataSource填充GridControl / DataGridView

时间:2020-03-26 13:26:45

标签: c# devexpress devexpress-windows-ui

我需要在运行时在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();
}

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

1 个答案:

答案 0 :(得分:0)

由Dashboard Designer控件创建的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();
    }  
}
相关问题