c# datagridview 查询 重复
时间: 2023-04-18 11:03:24 浏览: 159
您好,如果您想在C#中使用DataGridView进行查询,可以使用LINQ查询语句来实现。如果您想查询重复数据,可以使用GroupBy()方法和Count()方法来实现。具体步骤如下:
1. 首先,将DataGridView中的数据转换为DataTable对象,可以使用以下代码:
DataTable dt = new DataTable();
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
dt.Columns.Add(col.Name);
}
foreach (DataGridViewRow row in dataGridView1.Rows)
{
DataRow dRow = dt.NewRow();
foreach (DataGridViewCell cell in row.Cells)
{
dRow[cell.ColumnIndex] = cell.Value;
}
dt.Rows.Add(dRow);
}
2. 然后,使用LINQ查询语句来查询重复数据,可以使用以下代码:
var duplicates = from row in dt.AsEnumerable()
group row by new
{
Column1 = row.Field<string>("Column1"),
Column2 = row.Field<string>("Column2"),
Column3 = row.Field<string>("Column3")
} into grp
where grp.Count() > 1
select grp.Key;
其中,Column1、Column2、Column3是需要查询的列名,可以根据实际情况进行修改。
3. 最后,将查询结果显示在DataGridView中,可以使用以下代码:
DataTable dtDuplicates = new DataTable();
foreach (var key in duplicates)
{
DataRow dRow = dtDuplicates.NewRow();
dRow["Column1"] = key.Column1;
dRow["Column2"] = key.Column2;
dRow["Column3"] = key.Column3;
dtDuplicates.Rows.Add(dRow);
}
dataGridView1.DataSource = dtDuplicates;
希望对您有所帮助。
阅读全文