首页 > 代码库 > C#DataGridView编辑、添加行

C#DataGridView编辑、添加行

  最近做项目需要对winfrom中的DataGirdView控件进行实时编辑个添加,保证跟数据库的数据实时同步起来。

  需求:对DataGirdView进行编辑、添加,保证数据跟数据库同步。

  分析:这样是要对某个事件进行操作,在完成时候是做添加还是修改操作,判断是添加还是修改可以通过ID来判断,如果数据库存在同样的ID,则编辑,不存在则进行添加,操作明确了,就是选择事件了,DataGridView事件很多,我选择的是CellEndEdit事件(当前选定单元格编辑模式停止时发生),具体的事件有很多,针对不同情况选择不同事件。 

技术分享
                      //对行、列坐标进行判断            int rowIndex = e.RowIndex;            int colIndex = e.ColumnIndex;            if (rowIndex < 0 || colIndex < 0) return;            //取值操作            string id = this.gvPerson.Rows[rowIndex].Cells[0].Value.ToString();            string sql = @"select * from Person where ID=‘" + id + "";            DataTable dt = DBHelper.ExecuteTable(sql, CommandType.Text, null);            if (dt.Rows.Count > 0) {                //执行修改操作            }            else {                //执行添加操作            }            DoWork();                        
View Code

  做到这里,实际上完成了实时编辑、添加,但是,这样是远远不够的,数据是更新、添加到数据库,那么怎么样刷新DataGirdView呢?

        public delegate void MyInvoke();        public void DoWork() {            MyInvoke mi = new MyInvoke(LoadData);            this.BeginInvoke(mi);        }        public void LoadData() {            string sql = @"select * from Person";            DataTable dt = DBHelper.ExecuteTable(sql, CommandType.Text, null);            this.gvPerson.DataSource = dt;        }    

  如果跟平时一样,重新加载一次,那样的刷新不了的,反而会报错,用委托的方式可以得到解决。

  在做DataGridView的操作时,会碰到DataError错误,只需要打开这个事件就可以了。

C#DataGridView编辑、添加行