C#DataGridView編輯、添加行

來源:互聯網
上載者:User

標籤:

  最近做項目需要對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編輯、添加行

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.