[转]DataGridView在与DataTable

 
2009-01-13 11:43

今天在写Windows From程序时,发现DataGridView在与DataTable透过BindingSource绑定,在DataGridView进行数据的排序后,DataGridView中的数据Index将会与DataTableIndex不一致,当选定的数据在进行修改后,因Index的不一致,导致在回存数据库的时候无法断定该回存哪一笔Row Data,这让我很苦恼,一度想把DataGridView的排序给关闭,不让使用者操作,不过想想,这也不是根本的解决之道,况且在我的程序中,这DataGridView的排序是必要的,不然会造成使用者操作的不方便....

在网络上找了好久,大部分都直接叫我关掉排序的功能....看到真是无言....,最后终于让我找到解决方法,方式如下:

DataRowView drv = dataGridView.SelectedRows[0].DataBoundItem as DataRowView;
int index = dataTable.Rows.IndexOf(drv.Row);

看程序看不懂吗?说明如下:

先利用DataRowView.SeletedRows找到目前选择的某一行数据,然后转换成DataRowView,在DataRowView中有一个属性叫做Row,其代表DataTable中的DataRow,最后再利用DataTable.rows.IndexOf()方法回传当前的Index

如此一来,在DataGridView排序后,仍可顺利的取得目前编辑的资料在DataTable中的正确索引为何了!

转载于:https://www.cnblogs.com/stupid-fool/archive/2009/07/14/1523021.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值