DataGridView 索引,新增列

2021-07-09 02:42:10 字數 1009 閱讀 3627

問題1:datagridview繫結datatable之後,在介面排序,選擇若干行,此時選中的行的index與datatable中的index不一致,這樣若想要對其對應的行進行修改操作,將會造成錯誤。

sol: 首先將選中的datagridview行的databounditem屬性轉換為datarowview, 然後通過對應的datatable中的取出索引。

1 datarowview drv = datagridview.selectedrows[0].databounditem as

datarowview;

2int index = datatable.rows.indexof(drv.row);

這是因為datarowview物件中,有乙個row屬性,獲取正被檢視的 datarow,那麼就可以在datarow所在的表中找到它的索引啦。

問題2:為什麼foreach遍歷datatable或者datagridview對行進行增刪修改的操作,會造成索引錯誤的問題?

sol: 這是因為foreach迴圈是從第一位開始遍歷,如果對某一行進行刪除操作,那麼該行後面的datarow(datagridviewrow)的索引會提前一位,也即是說,datarow(datagridviewrow)的index是會實時變化的,因此會出錯。比如索引為3被刪除,那麼刪除後4的索引就變成3了,又一次迴圈時原先索引為4的就被跳過不操作了(因為此時操作索引為4的,也即原先索引為5)。

如果需要對行進行刪除,那麼要從表尾開始操作起,這樣刪除任一行,對前面的datarow(datagridviewrow)的索引就沒有影響了。

問題3:datatable新增列之後,如何確定是否為null或者空字串?

sol: 在作判斷的時候經常需要對其判斷是否為null 或者 string.empty,如果null和 string.empty的處理結果是一樣的,那麼可以在新增列的時候,設定其defaultvalue。

dt.columns["

a"].defaultvalue = string.empty;

datagridview 獲取選中行的索引

for int i 0 i this.datagridview1.selectedrows.count i 遍歷所有選中的行 datagridview.currentcell.rowindex 是當前活動的單元格的行的索引 datagridview1.currentrow.index 獲得包含當前單...

php增加mysql索引 mysql怎麼新增索引

在mysql中可以通過使用alter table這個sql語句來為表中的字段新增索引。1 新增primary key 主鍵索引 mysql alter table table name add primary key column 2 新增unique 唯一索引 mysql alter table ...

android LinearLayout新增分隔線

linearlayout支援直接顯示分隔線。設定標籤的 android showdividers屬性可以再linearlayout的相應位置顯示分隔線。如果有多個linearlayout,顯示效果和在 linearlayout之間加分隔線是一樣的。android showdividers屬性可以設定...