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