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;
        }

  

posted @   未风  阅读(26784)  评论(1编辑  收藏  举报
编辑推荐:
· 基于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)
点击右上角即可分享
微信分享提示