DataTable使用总结

1.DataTable数据去重

复制代码
 1  static void Main(string[] args)
 2         {
 3             DataTable dt = new DataTable();//创建表
 4             DataColumn dc = null;//创建列
 5             int fieldCount = 4;//列数
 6             int rowCount = 4;//行数
 7             //以下两个循环只是模拟向dt中添加数据
 8             for (int i = 0; i < fieldCount; i++)
 9             {
10                 if (i==0)
11                 {
12                     dc = dt.Columns.Add("ID", Type.GetType("System.String"));
13                 }
14                 else
15                 {
16                     dc = dt.Columns.Add(string.Format("第{0}列", i.ToString()), Type.GetType("System.String"));
17                 }
18             }
19             for (int i = 0; i < rowCount; i++)
20             {
21                 DataRow newRow = dt.NewRow();
22                 for (int j = 0; j < fieldCount; j++)
23                 {
24                     if (j==0)
25                     {
26                         newRow["ID"] = Guid.NewGuid();
27                     }
28                     else
29                     {
30                         newRow[string.Format("第{0}列", j.ToString())] = j;
31                     }
32                 }
33                 dt.Rows.Add(newRow);
34             }
35             //数据去重处理
36             DataTable finalltable = dt.Clone();
37             finalltable.Clear();
38             var rows = from row in dt.AsEnumerable()
39                        group row
40                        by row["第1列"]//表示根据具体的哪一列进行去重
41                        into myrow
42                        select myrow.FirstOrDefault();
43             foreach (DataRow row in rows)
44             {
45                 finalltable.ImportRow(row);
46             }
47         }
View Code
复制代码

模拟添加的数据:

 

数据去重后的结果:

2.DataTable排序

1
2
3
4
5
6
7
8
9
DataTable dtTop100Total = new DataTable();
DataRow[] rows = dtTop100Total.Select("", "int型的排序字段 DESC");
DataTable t = dtTop100Total.Clone();
t.Clear();
foreach (DataRow row in rows)
{
    t.ImportRow(row);
}
dtTop100Total = t;

3.向DataTable中添加属于另一个DataTable的DataRow

1
2
3
4
5
6
DataTable dtSame = SQLHelper.ExecuteTableSQL(SqlQuery);//数据源
DataRow[] drSource = dtSame.Select(“过滤条件”, "排序字段 DESC/ASC");
DataTable dtTarget = dtSame.Clone();//复制数据源表结构
DataRow drTarget = dtTarget.NewRow();//创建新行
drTarget.ItemArray = drSource[0].ItemArray;//赋值
dtTarget.Rows.Add(drTarget);//添加

4.gridView绑定DataTable

复制代码
DataTable dt = new DataTable();
            dt.Columns.Add("htl_cd");
            dt.Columns.Add("htl_nm");

            Random r = new Random();
            for (int i = 0; i < 100; i++)
            {
                DataRow dr = dt.NewRow();
                dr[0] = r.Next(0, 1000);
                dr[1] = r.Next(0, 1000);
                dt.Rows.Add(dr);
            }
            this.gridControl1.DataSource = dt;
            this.gridView1.PopulateColumns(); //显示gridCOntrol 数据
复制代码

 

posted @   ~沐风  阅读(436)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示