在《 .net中将DataGridView内的数据导出为Excel表格》中说了如何导出数据到Excel,今天这篇文章将讲述如何绑定数据源,在控件中显示我们需要的信息.

在敲机房收费系统的时候,我的主线都是从三层到数据库,然后从数据库中返回直至U层。如果是这样的处理方式,和DataGridView打交道的都是DataTable。不过DataGridView也有可以直接和数据库连接,来与数据源绑定。

一 与之相关的组件BingSource

说到绑定,我们不得不提到BingSource.它是类库System.Window.Form命名空间内的类。MSDN中解释它的作用是封装窗体的数据源,并提供导航、筛选、排序和更新的功能。我们通常叫他为组件。BingSource组件有很多用途。首先,他是通过windows窗体控件与数据源之间提供流通管理、更改通知和其他服务简化了窗体上的控件到数据的绑定。这通过DataSource属性将BingSource组件附加到数据源来实现。对于复杂的绑定方案,可以选择将DataMember属性设置为数据源中特定列或列表。然后将控件绑定到BingSource。有没有发现,BingSource组件就是一个中间枢纽,他管理这控件和数据源之间数据的传输。

二 具体操作步骤

1连接数据源

根据出现的提示选择自己需要的数据源

点击完成后会在设计处出现三个组件如下图所示:

上面的这三个组件就是我们在查询数据库时经常用到的DateSet和TableAdapter,一个是缓存数据的地方,一个是通信机制。TableAdapter 通过对数据库执行 SQL 语句和存储过程来提供应用程序和数据库之间的通信。除 DataAdapter 的标准功能外,TableAdapter 还提供其他查询,这些查询与关联类型化 DataTable 共享通用架构。TableAdapter 将返回数据加载到它在应用程序中的关联数据表中,或返回已用数据填充的新数据表。

在这三个组件中大家可以添加查询,写一些查询语句。

如果你的查询条件是来自窗体中的控件中的内容那么就可以用参数代替具体的条件比如:查询语句为

SELECT * from  T_Card  where Sex=@Sex (查询T_Card 中性别等于@Sex的信息 )

在窗体中就会出现如下控件,在窗体中就会出现如下代码:

窗体加载方法下:

'TODO: 这行代码将数据加载到表“ChargeDataSet8.T_Student”中。您可以根据需要移动或删除它。
        Me.T_StudentTableAdapter.Fill(Me.ChargeDataSet8.T_Student)

单击FillBy 控件就会添加SexToolStripTextBox.Text的内容为条件的查询。它就是我们查询语句中的参数@Sex的值。

Private Sub FillByToolStripButton_Click(sender As Object, e As EventArgs) Handles FillByToolStripButton.Click
        Try
            Me.T_StudentTableAdapter.FillBy(Me.ChargeDataSet8.T_Student, SexToolStripTextBox.Text)
        Catch ex As System.Exception
            System.Windows.Forms.MessageBox.Show(ex.Message)
        End Try

End Sub

通过这些代码和控件,我们可以根据自己的需要将里面的代码或控件换成自己需要的就可以了,方便快捷。

2设置表格

三 补充:

在使用TableAdapter的时候,会发现他有两种方法:Fill和FillBy,他们有什么区别呢?

下面的这张图很能说明问题:

Fill定义了TableAdaper的方法,而FillBy则是具体的去实现这个Fill的方法。

上面说的这些只是数据绑定的一小部分内容,还有很多宝藏等待大家挖掘。

vb.net中将DataGridView与数据源绑定的更多相关文章

  1. C#窗体:关于DataGridView的数据源绑定字符串两个值得注意的问题

    无意间遇到的问题,然后就GOOGLE了下,搜到些资料,总结整理如下(注:是转载的) 1. LINQ的查询结果无法直接作为DataGridView的数据源 DataGridView的DataSource ...

  2. C#中数据源绑定DataSource以及相关控件(DataGridView)的使用总结

    我们在编程过程中,会涉及到表格数据的显示,存储等,就可能涉及到DataGridView,DataSource, DataTable等概念. 下面我就我自己模糊的一些知识点串讲以下: 1)首先我要讲的是 ...

  3. [置顶] DataGridView控件---绑定数据方法

             DataGridView控件是在windows应用程中显示数据最好的方式,它只需要几行简短的代码就可以把数据显示给用户,同时又支持增.删.改操作.今天将自己总结的增加数据的方法总结分 ...

  4. Spring Boot + Druid 多数据源绑定

    date: 2019-12-19 14:40:00 updated: 2019-12-19 15:10:00 Spring Boot + Druid 多数据源绑定 版本环境:Spring Boot 2 ...

  5. 使用DataContext和ItemsSource将数据源绑定到ListView上的区别

    在最近的一个项目中,将DataView类型的数据源绑定到ListView控件时,发现当DataView的内容发生变化时,前台的ListView控件的内容并没有发生改变,在这里我先贴出前台要绑定数据源的 ...

  6. GridView绑定数据源 绑定DataReader /DataSet /DataTable

    有一个GridView1 <asp:GridView ID="GridView1" runat="server"></asp:GridView ...

  7. iNeuOS工业互联网操作系统,增加搜索应用、多数据源绑定、视图背景设置颜色、多级别文件夹、组合及拆分图元

    目       录 1.      概述... 2 2.      搜索应用... 2 3.      多数据源绑定... 3 4.      视图背景设置颜色... 4 5.      多级别文件夹 ...

  8. DataGridVIew控件绑定数据之后的,增、插、删操作

    最开始没有绑定数据,很快就实现了增.插.删操作,可是绑定数据之后,进行这些操作就会报错. 网上对这方面的资料比较少,自己摸索着找到了解决方法,也就是直接对绑定的数据进行操作,这里以DataTable为 ...

  9. DataGridView控件绑定数据源

    前言: 近期听说DataGridView控件能直接绑定数据源.而不用穿越这层那层的忍辱负重.获取数据.真是高兴的屁颠屁颠的.后来一想二狗肯定不会弄.特意写了一个笨蛋版的教程--也算记录生活.欢度端午了 ...

随机推荐

  1. CodeForces 909E Coprocessor

    题解. 贪心,拓扑排序. 和拓扑排序一样,先把$flag$为$0$的点能删的都删光,露出来的肯定都是$flag$为$0$的,然后疯狂删$flag$为$0$的,这些会使答案加$1$,反复操作就可以了. ...

  2. 湖南大学ACM程序设计新生杯大赛(同步赛)G - The heap of socks

    题目描述 BSD is a lazy boy. He doesn't want to wash his socks, but he will have a data structure called ...

  3. 洛谷P2151 [SDOI2009] HH去散步 [矩阵加速]

    题目传送门 HH去散步 题目描述 HH有个一成不变的习惯,喜欢饭后百步走.所谓百步走,就是散步,就是在一定的时间 内,走过一定的距离. 但是同时HH又是个喜欢变化的人,所以他不会立刻沿着刚刚走来的路走 ...

  4. 洛谷P3052 [USACO12MAR]摩天大楼里的奶牛 [迭代加深搜索]

    题目传送门 摩天大楼里的奶牛 题目描述 A little known fact about Bessie and friends is that they love stair climbing ra ...

  5. disconf-client-for-java

    一.disconf客户端部署 disconf目前仅支持java客户端,下文针对java客户端安装作为整理,记录下安装部署的步骤 1.环境依赖 首先需要安装java环境及maven环境,不再过多介绍 2 ...

  6. sublime 字体设置

    安装完成sublime之后,推荐一种比较舒服的字体设置,个人习惯.配置步骤如下,打开sublime-->Preferences-->Settings - User 2.复制以下内容粘贴,并 ...

  7. python解决组合问题

    1.问题描述 比如9个数中取4个数的组合以及列出各种组合,该如何做? 我们可以考虑以下一个简单组合:从1,2,3,4,5,6中,如何选取任意四个数的组合. 固定:1   2  3  ,组合有1234 ...

  8. Python正则模块

    re模块 import re # match # 从头开始匹配, 只匹配一次,就结束 a = re.match('\d+', '54:58天5488:8451') # 默认就是0个群组 print(a ...

  9. 对Java Serializable(序列化)的理解和总结(一)

    导读:最近在做项目的过程中,发现一个问题,就是我们最开始的时候,传递参数包括返回类型,都有map类型.但是由于map每次都要匹配key值,很麻烦.所以在之后就将参数传递和返回类型全都改成了实体bean ...

  10. PAT甲级1014. Waiting in Line

    PAT甲级1014. Waiting in Line 题意: 假设银行有N个窗口可以开放服务.窗前有一条黄线,将等候区分为两部分.客户要排队的规则是: 每个窗口前面的黄线内的空间足以包含与M个客户的一 ...