再问一个简单的问题,大虾们请多帮忙,谢谢!

BigAngell 2008-09-06 08:06:21
窗体上放了一个DataGridView(dgvBmb)

private DataTable tblBmb = new DataTable();

private void fm_HSE_bmb_Load(object sender, EventArgs e)
{
HSE_bmb_Query bmbQuery = new HSE_bmb_Query();
tblBmb = bmbQuery.GetData(); //数据提取
dgvBmb.DataSource = tblBmb.DefaultView;
}

//问题是:当DataGridView的行改变时,如何在DataTable得到行记录?
//  我的方法DataRow dr = tblBmb.Rows[dgvBmb.SelectedRows[0].Index]; (这里设定DataGridView只能单行选定)
//  如果DataGridView顺序跟DataTable的顺序相同就没问题,如果DataGridView排了序,行就可能乱了,这个方法就用不上了

//请大家忙小弟解惑,小弟初学,以前用Delphi,感觉没这么麻烦的,谢谢大家指教!

...全文
115 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
BigAngell 2008-09-25
  • 打赏
  • 举报
回复
这个问题还是没得到解决哦
蓝色木 2008-09-07
  • 打赏
  • 举报
回复
不好意思看错了
在dgvBmb直接得到主键值就行了
蓝色木 2008-09-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 haozi678 的回复:]
DataTable dt = new DataTable();
dt.PrimaryKey = new DataColumn[] { dt.Columns["ID"] };
ID在数据库里也必须设置为主键
[/Quote]


这个就是设定DataTable的主键
notenlife 2008-09-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 haozi678 的回复:]
给tblBmb 设定一个主键,
选择行的时候通过主键查找就不会有错误了
tblBmb.rows.find(主键值)
主键值可以用tblBmb.Rows[dgvBmb.SelectedRows[0].Index][]得到
[/Quote]
蓝色木 2008-09-06
  • 打赏
  • 举报
回复
DataTable dt = new DataTable();
dt.PrimaryKey = new DataColumn[] { dt.Columns["ID"] };
ID在数据库里也必须设置为主键
BigAngell 2008-09-06
  • 打赏
  • 举报
回复
急死人了哦,弄了半天没弄出来啊!
BigAngell 2008-09-06
  • 打赏
  • 举报
回复
haozi678: 能说得俱体点吗?
比如说主键是列id,指定主键的代码该怎么写?
蓝色木 2008-09-06
  • 打赏
  • 举报
回复
给tblBmb 设定一个主键,
选择行的时候通过主键查找就不会有错误了
tblBmb.rows.find(主键值)
主键值可以用tblBmb.Rows[dgvBmb.SelectedRows[0].Index][]得到
hflkl1314 2008-09-06
  • 打赏
  • 举报
回复
没看懂
BigAngell 2008-09-06
  • 打赏
  • 举报
回复
如何获取?

DataRow dr = tblBmb.Rows[dgvBmb.SelectedRows[0].Index]; 

这个方法我试过,排序后定位是错的。
luluyy 2008-09-06
  • 打赏
  • 举报
回复
你可以获得它的index这样就不会乱了 当它变动时还能获得它的行数~~ 通过这个记录

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧