本文共 947 字,大约阅读时间需要 3 分钟。
區別:
綁定datatable:datagridview重排序后不會同步更新datatable,兩者按索引獲取數據是不一樣的;
綁定dataview: datagridview重排序后會同步更新dataview,兩者按索引獲取數據是一樣的;
例子:
假如 有DataGridView dgv; DataView dv; DataTable dt 3個對象都已初始化。
1. dgv的DataSource设为dt
如果點擊DataGridView對数据進行排序,此時数据源dt的数据不會同步進行排序,這樣datagridview顯示的數據排序與dt 的就會不一樣,如果用索引獲取取数据会导致数据混亂,
dgv.Rows[索引號]["Id"].value可能 不等于 dt.Rows[索引號]["Id"];
2. dgv的DataSource设为DataView
如果dgv中的数据排序后,dt.DefaultView视图中的数据也同步排序了。按索引號列出列 Id的值
Console.WriteLine("DatagridView"); for (int i = 0; i < dgv.Rows.Count; i++) { Console.WriteLine (string.Format ("Row:{0}---Id:{1}",i.ToString (), dgv .Rows [i].Cells["Id"].Value )); } DataView dv = (DataView)dgv.DataSource; Console.WriteLine("DataSource-->DataView"); for (int j = 0; j < dv.Count; j++) { Console.WriteLine(string.Format("Row:{0}---Id{1}", j.ToString(), Convert.ToString(dv[j]["Id"]))); }
转载地址:http://npmdi.baihongyu.com/