ADO.NET 从DataTable中获取某列含有的不同值的几种方式
private int getCount() { DataTable dt //已知的datadable ,有上万条记录 DataTable newDt=dt.DefaultView.ToTable(true, "city"); int num=newDt.Rows.Count; return num; }
DataTable SourceTable = new SourseTable(); SourceTable.Columns.Add("Code",string); //...向SourseTable中添加数据 DataView view = new DataView(SourceTable); string[] columns = {"Code"} DataTable tarTable = view.ToTable(true,columns);//得到目标
单列: MyDataContext db = new MyDataContext(); var result = (from p in db.t_Personnel select p.FirstName).Distinct(); DataTable dt = new DataTable("SingleDistinct"); dt.Columns.Add("FirstName"); foreach (var item in result) { DataRow dr = dt.NewRow(); dr["FirstName"] = item.ToString(); dt.Rows.Add(dr); } dataGridView1.DataSource = dt; 多列: using System.Data; using System.Collections; namespace Test_Distinct { public class PersonDataRowComparer : IEqualityComparer<t_Personnel> { public bool Equals(t_Personnel t1, t_Personnel t2) { return (t1.ID == t2.ID && t1.FirstName == t2.FirstName); } public int GetHashCode(t_Personnel t) { return t.ToString().GetHashCode(); } } } MyDataContext db = new MyDataContext(); IEnumerable distinctRows = db.t_Personnel.ToList().Distinct(new PersonDataRowComparer()); DataTable dt = new DataTable("SingleDistinct"); dt.Columns.Add("ID"); dt.Columns.Add("FirstName"); dt.Columns.Add("LastName"); foreach (var item in distinctRows) { DataRow dr = dt.NewRow(); dr["ID"] = item.ID; dr["FirstName"] = item.FirstName; dr["LastName"] = item.LastName; dt.Rows.Add(dr); } dataGridView1.DataSource = dt;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?