1: BindingSource bs = new BindingSource();
   2: bs.DataSource = dateTabel1;
   3: bindingNavigator1.BindingSource = bs;
   4: dataGridView1.DataSource = bs ;

BindingNavigator 控件一般要与BindingSource 控件一同使用较为方便,因为对于 BindingNavigator 控件上的每个按钮,都有一个对应的 BindingSource 组件成员,其以编程方式允许有相同功能。例如,MoveFirstItem 按钮对应于 BindingSource 组件的 MoveFirst 方法,DeleteItem 按钮对应于 RemoveCurrent方法,等等。尽管BindingNavigator 可以绑定到任何数据源,但它被设计为通过其BindingNavigator.BindingSource 属性与BindingSource 组件集成。

因此定义一个BindingSource ,并将BindingNavigator 和DataGridView的数据源都设置为BindingSource ,可保证BindingNavigator 和DataGridView的数据同步。

----------------------------------------------------------------------------------------------------------------------

BindingSource控件介绍 
BindingSource控件是.NET Framework 2.0提供的新控件之一。BindingSource控件与数据源建立连接,然后将窗体中的控件与BindingSource控件建立绑定关系来实现数据绑定,简化数据绑定的过程。 
BindingSource控件即是一个连接后台数据库的渠道,同时又是一个数据源,因为BindingSource控件即 支持向后台数据库发送命令来检索数据,又支持直接通过BindingSource控件对数据进行访问、排序、筛选和更新操作。BindingSource控件能够自动管理许多绑定问题。 
BindingSource控件没有运行时界面,无法在用户界面上看到该控件。 
BindingSource控件通过Current属性访问当前记录,通过List属性访问整个数据表。

(1)下表列出了BindingSource控件的主要属性
属性          说明 
AllowEdit   指示是否可以编辑BindingSource控件中的记录。 
AllowNew    指示是否可以使用 AddNew 方法向BindingSource控件添加记录 
AllowRemove    指示是否可从BindingSource控件中删除记录。 
Count    获取BindingSource控件中的记录数。 
CurrencyManager    获取与BindingSource控件关联的当前记录管理器。 
Current     获取BindingSource控件中的当前记录 
DataMember      获取或设置连接器当前绑定到的数据源中的特定数据列表或数据库表。 
DataSource     获取或设置连接器绑定到的数据源。 
Filter    获取或设置用于筛选的表达式。 
Item      获取或设置指定索引的记录。 
Sort      获取或设置用于排序的列名来指定排序。

通过Current属性及RemoveCurrent、EndEdit、CancelEdit、Add和AddNew方法可实现对当前记录的编辑操作。

(2)下表列出了BindingSource控件的主要方法 
方法      说明 
Add       将现有项添加到内部列表中 
CancelEdit        从列表中移除所有元素 
EndEdit       将挂起的更改应用于基础数据源。 
Find       在数据源中查找指定的项。 
MoveFirst       移至列表中的第一项。 
MoveLast       移至列表中的最后一项。 
MoveNext       移至列表中的下一项。 
MovePrevious        移至列表中的上一项。 
RemoveCurrent        从列表中移除当前项。

如果你是通过从[数据源]拖拽表到Form上生成的DataGridView及数据,那就用VS05自动生成的 BindingNavigator进行增、删、改。通常你甚至连一行代码都不用写。 另外,从vs05开始强烈推荐使用BindingSource作为控件和数据之间的中间层。就是说控件绑定到 BindingSource, BindingSource再绑定到数据对象(date item)或对象列表 (data item list)。 这样做有 许多好处。 BindingSource.EndEdit();会把更新提交到内存中的对象或对象列表(如DataSet)。 BindingSource.Update方法会把更新提交到数据库。

以Vs2005操作Access2003数据库为例(不用向导)

1、建一个Access   2003文件 db1.mdb   建一个表(Person) :表结构如下,输入一些内容   
         UID          自动编号   主键 
         name       文字   
         age          数字   
         sex          文字

2、Vs2005建一个winform,把一个DataGridView、Button拖到Form上。 运行一下,再把db1.mdb复制到Debug目录下。 给类增加三个成员: 
private DataTable dt; 
private BindingSource bs; 
private OleDbDataAdapter da; 
双击Form1,在Form1_Load里 : 
private void Form1_Load(object sender, EventArgs e) 
       { 
           TODO: 这行代码将数据加载到表“db1DataSet.stu”中。您可以根据需要移动或移除它。 
           //this.stuTableAdapter.Fill(this.db1DataSet.stu); 
           OleDbConnection conn = new OleDbConnection(); 
           conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb"; 
           OleDbCommand cmd = new OleDbCommand(); 
           cmd.Connection = conn; 
           cmd.CommandText = "select * from  Person"; 
           dt = new DataTable(); 
           da = new OleDbDataAdapter(); 
           da.SelectCommand = cmd; 
           OleDbCommandBuilder cb = new OleDbCommandBuilder(da); 
           da.Fill(dt); 
           bs = new BindingSource(); 
           bs.DataSource = dt; 
           dataGridView1.DataSource = bs; 
       } 
双击button1,在button1_Click里   
private   void   button1_Click(object   sender,   EventArgs   e)   
   {                         
                         da.Update(dt);   
                         MessageBox.Show("OK");   
   }   
把我举的例子里 
private BindingSource bs;//去掉 
bs = new BindingSource(); 
bs.DataSource = dt; 
dataGridView1.DataSource = bs; //也可以不用BindingSource,直接DataSource=dt; 
这三行改成 
dataGrid1.DataSource = dt; 
--------- 
'永远'记住一点:在使用DataAdapter的应用里,你根本无需手动打开连接和关闭连接。 
也就是在你的代码中根本不应看到Conn.Open()、Conn.Close()之类的东西。 
因为DataAdapter会在自动为你打开和关闭连接。

转载自:http://blog.csdn.net/Vezn_King/article/details/8222842

另可参考文章:WinForm之中BindingNavigator控件的使用

C# BindingNavigator与DataGridView绑定相关推荐

  1. BindingNavigator与DataGridView绑定

    1: BindingSource bs = new BindingSource(); 2: bs.DataSource = dateTabel1; 3: bindingNavigator1.Bindi ...

  2. bindingnavigator如何与datagridview绑定

    1: BindingSource bs = new BindingSource(); 2: bs.DataSource = dateTabel1; 3: bindingNavigator1.Bindi ...

  3. datagridview绑定与详细说明 (搜集)

    1.实现一个用于处理数据库教程数据检索的详细信息的方法. 下面的代码示例实现一个 getdata 方法,该方法对一个 sqldataadapter 组件进行初始化,并使用该组件填充 datatable ...

  4. DataGridView绑定对象数组 c# 1614236580

    DataGridView绑定对象数组 c# 1614236580 参考代码 1,控件绑定数组 2,指定列的数据源 为 对象的属性名称

  5. WinForm DataGridView 绑定泛型List(ListT)/ArrayList不显示的原因和解决

    背景:无意间遇到了一个不大不小的问题,希望对一些遇到的人有所帮助! 一.问题 WinForm DataGridView 绑定泛型List (List<T>)/ArrayList不显示,UI ...

  6. DataGridView绑定数据库

    背景 今天在做C#实验的时候,遇到了一个难题:需要将数据库中的数据在C#的窗体的DataGridView控件中显示出来.当然老师布置这个作业是在之前做了铺垫的,之前做省县区三级查询时,讲过了Sampl ...

  7. c# easyui 赋值_C# DataGridView绑定数据源的方法

    开始以前,先认识一下WinForm控件数据绑定的两种形式,简单数据绑定和复杂数据绑定. 1. 简单的数据绑定 例1 using (SqlConnection conn = new SqlConnect ...

  8. BindingNavigator操作DatagridView的数据

    参考 http://wenku.baidu.com/link?url=NWfEfArPZvDO_aI-xEKBHVGoZY9wQO_Oty_GCsGLiPspheCzFYLf_dytuWAqN2_0A ...

  9. Winform中DataGridView绑定IList数据源后的排序

    首先,实现ICompare接口 public class ObjectPropertyCompare<T> : IComparer<T> { private PropertyD ...

最新文章

  1. SQL SERVER 2008过了评估期
  2. 风向变了 网络安全又占股市风口
  3. 剑指Offer-二叉树的镜像
  4. c,C++语言中、\t \r \n 和空格什么意思
  5. java练气期(2)----java高级(File类与IO流)
  6. 程序员黑科技 | 用13块钱DIY微信小程序浇花神器
  7. python将excel导入oracle,使用Python将Excel文件导入到Oracle数据库里
  8. sharepoint_study_5
  9. 【蓝桥杯单片机】实战之基础停表
  10. 【Kafka】Kafka Leader:none ISR 为空 消费超时
  11. 验证码识别算法_用Python机器学习搞定验证码
  12. cmd进入到python安装目录下_在python中安装basemap
  13. Android Audio BSP工程师 需要清楚的基本知识点
  14. 机架服务器显示器,机架式显示器排名_欧仕茄物联
  15. 【CarMaker学习笔记】Simulink内的子模块详细介绍
  16. html表格动态添加图片,引用 制作html帖第四课:在表格中添加图片代码制作精美边框...
  17. 基于python的招聘信息可视化系统
  18. 人生在世,最大的笑话莫过于自作多情...
  19. CButton类的继承+重写--本类来自孙鑫老师C++课堂
  20. 【数据挖掘】金融风控 Task02 数据分析

热门文章

  1. 俄罗斯地名 中文、英文、俄文
  2. 严蔚敏数据结构C语言版——线性表的链式存储方式详细代码
  3. 【自动驾驶】动力学横向控制误差模型
  4. 基于Centos7系统搭建Redis集群之主从复制(新手教程)
  5. 如何建立一套完善的销售管理体系?
  6. 【学习笔记】 C# 基础
  7. html列表女装分类页面,女装分类页面.html
  8. 鸿蒙系统吃鸡用转区吗,“吃鸡”转区系统正式开放报名,共4条通道,按先后顺序发放!...
  9. 苹果i7笔记本和i5有什么区别
  10. Oracle10g的回收站(recyclebin)和自由空间管理