c#获取DataTable某一列不重复的值,或者获取某一列的所有值
实现该功能是用了DataView的筛选功能,DataView表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。 这里做了一个简单易懂的Demo来讲述该方法。
1.建两张表
2.读数据库数据到dt显示到dataGridView
3.用DataView选择表dt中数据并返回表dtTemporary
4.运行效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | namespace UbdTest { public partial class Demo : Form { DataTable dt = new DataTable(); //数据源 DataTable dtTemporary = new DataTable(); //接收返回的所需数据 public Demo() { InitializeComponent(); } private void Demo_Load( object sender, EventArgs e) { GetData(); //调用获取数据方法获得数据 } /// <summary> /// 从数据库获取数据方法 /// </summary> private void GetData() { //建立数据库链接 string sqlconString = "Data Source=(local);Initial Catalog=Demo;User ID=sa;Password=sa" ; //创建连接字符串sqlconString SqlConnection objcon = new SqlConnection(sqlconString); //创建sql数据连接对象objcon objcon.Open(); //打开数据库链接 //创建一个DataAdapter对象,它表示数据库和DataSet对象之间的链接 SqlDataAdapter dataAdapter = new SqlDataAdapter( "Select*From 工作表" , objcon); //创建DataSet对象的一个实例,为整个DataSet提供一个名称,然后才能开始加载数据 DataSet ds = new DataSet( "Demo" ); //test为数据来源数据库 //用SqlDataAdapter类提供的Fill方法向DataSet加载数据 dataAdapter.Fill(ds, "工作表" ); dt = ds.Tables[0]; } private void button1_Click( object sender, EventArgs e) { dataGridView1.DataSource = dt; } private void button2_Click( object sender, EventArgs e) { DataView dataview = dt.DefaultView; dtTemporary = dataview.ToTable( true , "日期" ); dataGridView2.DataSource = dtTemporary; } private void button3_Click( object sender, EventArgs e) { DataView dataview = dt.DefaultView; dtTemporary = dataview.ToTable( true , "工作内容" ); dataGridView3.DataSource = dtTemporary; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)