如何合并多个数据集而不获取空单元格? (并且结果到顶部)

时间:2017-02-08 09:53:42

标签: c# asp.net gridview dataset devexpress

例如,我的数据库中有3个不同的数据集。他们的主键可以设置或不设置,名称可以不同。

我的代码到目前为止看起来:

public static DevExpress.XtraGrid.Views.Grid.GridView m_ActiveIdeenkasten = null;
public DocManager()
{
    InitializeComponent();
    LoadDockPanels();

    m_ActiveIdeenkasten = gridView1;

    DataSet dt1 = new DataSet();
    DataSet dt2 = new DataSet();
    DataSet dt3 = new DataSet();

    dt1 = SQL.GetDataset("SELECT ik_bezeichnung FROM IK_Ideenkasten");
    dt2 = SQL.GetDataset("SELECT pm_artikel FROM PM_Startseite");
    dt3 = SQL.GetDataset("SELECT * FROM IK_Status");

    DataSet dt = new DataSet();

    dt.Merge(dt1, true , MissingSchemaAction.Add);
    dt.Merge(dt2, true, MissingSchemaAction.Add);
    dt.Merge(dt3, true, MissingSchemaAction.Add);

    m_ActiveIdeenkasten.GridControl.DataSource = dt.Tables[0];
}

现在我遇到了问题,我的dt1有很多行,如果我将dt2dt3dt合并在一起,我的网格视图就会搞砸了。

Picture of Result: Gridview

你看到有许多我不想要的空单元格。所有这些的目的应该是为用户定制DockPanel。每个dockpanel可以在数据库中包含用户想要的不同列。

1 个答案:

答案 0 :(得分:0)

SELECT ik_bezuwichnung FROM IK_Ideenkasten WHERE ik_bezichnung IS NOT NULL;
SELECT pm_artikel FROM PM_Startseite WHERE PM_Startseite IS NOT NULL;

对于IK_Status,您必须手动检查出现NULL的列,然后使用IS NOT NULL编写该SQL行。