解决方案 »

  1.   

    额。。一直没人回帖。。自己搞定了,跟帖留下来,希望对搜索相关问题的同学有帮助。
    其实很简单,只用三行代码:private void saveEditToolStripMenuItem_Click(object sender, EventArgs e)
            {
                //将光标移开当前单元格完成编辑
                //DataGirdView会自动将界面数据与其绑定的数据源同步
                this.keywordDataGridView.CurrentCell = null;
                //将项目数据源的内容更新 
                this.keywordDataSet = (keywordDataSet)((BindingSource)this.keywordDataGridView.DataSource).DataSource;
                //将数据库与数据源同步
                this.keywordTableAdapter.Update(this.keywordDataSet.keyword);
                MessageBox.Show(this.keywordDataSet.keyword.Rows[0][2].ToString());
            }
    注意,个人发现DataGirdView在用户编辑某单元格内容后,必须点击别的控件已完成光标的迁移才完成编辑,进而将界面数据与数据源同步。楼主也是因为这个问题,一直误以为自己界面上修改的数据没有同步到数据园中去。这对于用户操作而言很麻烦,因此在保存按钮中加入this.keywordDataGridView.CurrentCell = null;从而自动移除单元格中的光标,完成编辑。
      

  2.   

    用this.keywordDataGridView.EndEidt();就可以了,干嘛要移动光标?
      

  3.   

    你绑定数据源的情况我琢磨两天了,感谢你帖子对我的启示,但我又找到个更好的方法
    this.Validate();
    this.inputBindingSource.EndEdit();
    //同步数据到数据库
    this.inputTableAdapter.Update(this.sortDataSetinput.input);
      

  4.   

    我的问题是 使用了
     this.keywordTableAdapter.Update(this.keywordDataSet.keyword);  方式之后  
    第一次EndEdit事件结束之后DataGridView控件中的数据变化了,数据库没有同步变化
    第二次EndEdit事件结束之后数据库的数据才变化搞不清啥么问题