工具栏是BindingNavigator(包括 增加.删除.保存) 和一个textBox控件 一个查询按钮保存按钮事件:
 
this.Validate();
this.userinfoBindingSource.EndEdit();
this.user_infoTableAdapter.Update(this.dataSet4.User_info);
BindingNavigator和DataGridView 绑定的同一数据源DataGridView 显示全部数据的时候 我按"增加"在下面添加 一行数据,然后"保存" 没问题.新的行数据可以写进数据库我用textbox对DataGridView数据就行了过滤,当输入一个值的时候 只显示一部分数据. 这个时候我在点"添加"不管用.最后一行是可以输入数据,但是保存不到数据库!相同的也是!当我过滤后的数据 只显示一部分的时候, 选中其中一行,然后用"Delete"键删除.然后保存.显示的效果是删除了!但是没有写到数据库!  再次搜索的时候 出来的还是又未删除的信息!知道的高人!麻烦指点一下! 

解决方案 »

  1.   

    BindingNavigator和DataGridView 绑定的同一数据源那你就应该对这个数据源进行操作
    DataGridView 是个 view 是用来显示数据的
    你直接对数据源进行筛选就可以了,DataGridView 就能显示你筛选的视图
      

  2.   

    结果我已近筛选出来了!也已经在DataGridView 中显示了!
    但是筛选出来的结果.点击BindingNavigator"增加"按钮的时候 ,责不增加行!
      

  3.   

    昨晚學習了C#,你這個問題昨晚開課的同事有提到。您得記住,C#對數據庫的操作是從數據庫讀取數據,然後把數據存放在數據集里,然後斷開數據的連接,因此不管您這邊怎麼操作,都只是影響到您的數據集,並非影響到您的數據庫。因此每個操作都必須在同一個session進行操作(有點忘記了那位同事是怎麼說的。)。
      

  4.   

    我想是因为你筛选过后你的TableAdapter的selectcommand已经改变了.
    这个时候生成的updatecommand,deletecommand和insertcommand都有了where.
    所以使用TableAdapter.update方法执行增加,删除,修改时和实际效果不同