[英]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.