码迷,mamicode.com
首页 > Windows程序 > 详细

C#DataGridView编辑、添加行

时间:2015-01-14 19:44:46      阅读:610      评论:0      收藏:0      [点我收藏+]

标签:

  最近做项目需要对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编辑、添加行

标签:

原文地址:http://www.cnblogs.com/wuxiaohui/p/4224546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!