在Datatable,DataView和DataGridView中不显示重复的记录
来源:互联网 发布:周杨青的淘宝店铺 编辑:程序博客网 时间:2024/05/18 02:18
在Datatable,DataView和DataGridView中不显示重复的记录
其中,对于直接在查询语句中使用distinct不作过多说明,主要从代码层角度实现
方法一,在加载数据的时候,对于重复的数据,选择不进行加载。
代码如下:
<span style="font-size:14px;">OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program\Database\employInfo.accdb"); conn.Open(); OleDbDataReader dr; OleDbCommand view = new OleDbCommand("SELECT * FROM Employ", conn); dataGridView1.Rows.Clear(); dr = view.ExecuteReader(); int ii = dataGridView1.Rows.Count; bool isexist = false; while (dr.Read()) { if (dataGridView1.Rows.Count == 0) { dataGridView1.Rows.Add(dr["EmployId"], dr["EmployName"], dr["EmployCompany"]); } else { for (int i = 0; i < dataGridView1.Rows.Count; i++) { if (dataGridView1.Rows[i].Cells["EmployId"].Value.ToString() == dr["EmployId"].ToString() && dataGridView1.Rows[i].Cells["EmployName"].Value.ToString() == dr["EmployName"].ToString() && dataGridView1.Rows[i].Cells["EmployCompany"].Value.ToString() == dr["EmployCompany"].ToString()) { isexist=true; break; } } if (!isexist) { dataGridView1.Rows.Add(dr["EmployId"], dr["EmployName"], dr["EmployCompany"]); } isexist = false; } } dr.Close(); conn.Close();</span>
方法二.在现有的Datatable中去重,.net2.0提供了一个非常有效的方法DataView.ToTable 方法
具体代码如下:
具体代码如下:
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program\Database\employInfo.accdb"); conn.Open(); OleDbDataReader dr; OleDbCommand view = new OleDbCommand("SELECT * FROM Employ", conn); dataGridView1.Rows.Clear(); dr = view.ExecuteReader(); int ii = dataGridView1.Rows.Count; bool isexist = false; while (dr.Read()) { dataGridView1.Rows.Add(dr["EmployId"], dr["EmployName"], dr["EmployCompany"]); } dr.Close(); conn.Close(); DataTable dt = new DataTable(); OleDbDataAdapter da = new OleDbDataAdapter(); da.SelectCommand = view; da.Fill(dt); DataTable dtnew = dt.DefaultView.ToTable(true); dataGridView2.DataSource = dtnew;//dtnew and dt both are DataTable关于DataView.ToTable 方法可以参照如下链接:
http://msdn.microsoft.com/zh-cn/library/wec2b2e6(v=vs.110).aspx
0 0
- 在Datatable,DataView和DataGridView中不显示重复的记录
- 在DataTable和DataView中查找指定记录
- DataTable 和 DataView 的理解
- DataTable 和 DataView 的理解
- C#控件DataGridView的DataSource属性设为DataView和DataTable的区别
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- DataTable,DataView和DataGrid中一些容易混淆的概念
- 总结IT的知识基础,开博客写个书,汇总一些华为常用的知识
- GetWindowRect与GetClientRect 的区别
- LINUX程序设计--学习笔记
- jsp与java bean
- 【Unity 笔记】文件的写入与读取(2)
- 在Datatable,DataView和DataGridView中不显示重复的记录
- 获取 Hibernate InvalidStateException 异常信息的详情
- 大数据分析工具简介
- 第十三章 进程、线程类的实现
- LTE-Hi
- 正好在学习spring mvc,看到这篇很不错,果断转载
- Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法
- Java volatile
- SQL数据库查询实现行转列与列转行结果SQL语句(适用于SqlServer数据库,oracle需要修改case when语句)