C# DataGridView 綁定 DataTable 正確用法

現在用Winform開發程序的人好像越來越少了,我也很久沒寫代碼了。

最近幫朋友寫個小東西用到DataGridView綁定DataTable發現有點小問題,這裏貼出來分享一下,懷舊一下。


需求是這樣的,DataGridView綁定一個DataTable,在DataGridView上進行增刪改查,保存後存入數據庫。

開始我是這樣寫的(這裏只寫出問題和解決方法,不寫完整代碼了)

================================================================================

DataGridView grd;

DataTable dt;


綁定

grd.DataSource = dt;


修改在UI上操作


保存

foreach(DataRow row in dt.Rows)

{

if (row.RowState == DataRowState.Added)

row[index]插入數據庫insert

else if (row.RowState == DataRowState.Modified)

修改數據庫update

else if (row.RowState == DataRowState.Deleted)

刪除delete

}

====================================================================================

按上面寫發現修改後保存不上,跟蹤後發現是RowState始終是Unchanged

上網搜了一下居然沒找到正確的方法,看來用Winform的人真是越來越少了。

翻了一下以前寫的代碼找到了正確方法如下:

====================================================================================

這裏就不講大道理了,原理自己上網搜吧,主要有兩個要點容易忽略:

1.綁定方法,不要直接綁定DataTable,應該綁BindingSource

BindingSource bs = new BindingSource();

bs.DataSource = dt;

grd.DataSource = bs;


2.刪除時從DataRow中取值要下參數

row["ID", DataRowVersion.Original]


3.保存之前加兩句話

grd.EndEdit();

bs.EndEdit();

=====================================================================================

有興趣的可以試試看

不明白的可以加我QQ2632770080

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章