簡體   English   中英

如何刪除DataGridView中的重復數據

[英]How To Remove Duplication Of Data In DataGridView

我正在開發一個VB.NET應用程序,該應用程序使用DataGridView控件顯示數據庫中的數據。 當前,它顯示如下:

54     john         NJ        HRA           1000   
54     john         NJ        DA            2500   
54     john         NJ        BP            12500

但是我需要顯示如下:

54      john  NJ
                     HRA           1000   
                     DA            2500
                     BP            12500

由於重復了ID,名稱和城市,因此無需再次顯示。 我怎樣才能做到這一點?

我認為這可以幫助您

DataTable dtDataSource = new DataTable();

dtDataSource.Columns.Add("A");
dtDataSource.Columns.Add("B");
dtDataSource.Columns.Add("C");

dtDataSource.Rows.Add(new object[] { "1", "1", "1" });
dtDataSource.Rows.Add(new object[] { "1", "1", "2" });
dtDataSource.Rows.Add(new object[] { "1", "1", "3" });
dtDataSource.Rows.Add(new object[] { "2", "1", "1" });
dtDataSource.Rows.Add(new object[] { "2", "1", "2" });
dtDataSource.Rows.Add(new object[] { "2", "1", "3" });

DataTable dtNew = dtDataSource.Clone();

for (int i = 0; i < dtDataSource.Rows.Count; i++)
{
    if (i > 0)
    {
        if (dtDataSource.Rows[i][0].Equals(dtDataSource.Rows[i - 1][0]))
        {
            dtNew.Rows.Add(new object[] { "", dtDataSource.Rows[i][1], dtDataSource.Rows[i][2] });
        }
        else
        {
            dtNew.Rows.Add(new object[] { dtDataSource.Rows[i][0], "", "" });
            dtNew.Rows.Add(new object[] { "", dtDataSource.Rows[i][1], dtDataSource.Rows[i][2] });
        }
    }
    else
    {
        dtNew.Rows.Add(new object[] { dtDataSource.Rows[i][0], "", "" });
        dtNew.Rows.Add(new object[] { "", dtDataSource.Rows[i][1], dtDataSource.Rows[i][2] });
    }
}

dataGridView1.DataSource = dtNew;

您的數據應首先訂購。

我試圖在這里轉換VB.Net

如果您要做的只是顯示數據,則可以使用兩個SQL語句的UNION。

第一個將檢索前三列以及帶空字符串的兩列UNION SQL帶空字符串的三列和數據的兩列。 第一個SQL語句的字段名稱將為列命名。

數據將是只讀的。

    SELECT F1, F2, F3, '' as F4, '' as F5 WHERE ...
    UNION
    SELECT '', '', '', F4, F5 WHERE ...

如果您要檢索多個目標的數據,則SQL會變得更加復雜。

您的問題是由於數據庫的制作方式引起的。

您在使用主鍵和外鍵嗎?

這樣您就可以輕松確定僅顯示哪些記錄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM