如何获取DataGridView中当前的记录位置。

tangt 2010-04-08 03:23:47
我用TableAdapter 对 DataTable 进行了 装载;
在IDE中使用数据源对一个DataGridView和一个Text进行了挂接,
当改变DataGridView中的聚焦记录时,Text也跟着变化。这当然是想要的。
但我没找到如何手动定位这条记录,以及找到相应的下一条记录,比如,我要添加一个“对比下一条”按钮在不影响当前记录的前提下,另读取下一条记录,怎么做?

有人说DataSet.DataTable是没有类似游标的东西,对吗?

不希望没做一次功能都用一个reader从头到尾的读,所以希望直接获取位置,并读取操作。
...全文
311 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangt 2010-04-09
  • 打赏
  • 举报
回复
结果很简单, 使用 CurrencyManager类。
tangt 2010-04-08
  • 打赏
  • 举报
回复
用 curRow 记录当前行, 利用
dataSet1.Users.FindByID()、
curRow = (DataSet1.UsersRow)dataSet1.Users.Rows[dataSet1.Users.Rows.IndexOf(curRow) + 1];
可以手动的控制记录,但却脱离了IDE设置的数据绑定....

我觉得问题可以简化成:DataGridView是如何控制绑定的数据集中的数据记录的,组件1--表---组件2 间绑定机制由谁来负责?代码如何实现。
因为没有找到MS 的 组件源码,所以也看不到是如何实现的.有哪位高人指点??
tangt 2010-04-08
  • 打赏
  • 举报
回复
楼上的这个办法足以处理使用DataGridView的情况, 但还是需要至少一个循环;

如果界面上都是TextBox ,没有GridView之类的东西,我们怎么手动控制记录的变化呢?
我半天也没找到DataSet.DataTable.Next之类的东西, 必须通过Reader的话, 又免不了不停的生成reader..

如果实在不行,我就Reader,然后跳Index偏移量。 不知道效率怎么样。
ouzui 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ouzui 的回复:]
你可以用dataGridView1_CellClick事件来处理你想要的
C# code
String Str1,Str2;
DataGridViewCell c = dataGridView1.SelectedCells;
//通过c.RowIndex去dt取值
str1 = dt(DataTable对……
[/Quote]

写错了。。。改为:
if (c.RowIndex <= dataGridView1.Rows.Count-2)//临界值

ouzui 2010-04-08
  • 打赏
  • 举报
回复
你可以用dataGridView1_CellClick事件来处理你想要的

String Str1,Str2;
DataGridViewCell c = dataGridView1.SelectedCells;
//通过c.RowIndex去dt取值
str1 = dt(DataTable对象)rows[c.RowIndex]["colname"].ToString();
//如果不是最后一条记录,则继续去下一条
if (c.RowIndex != dataGridView1.Rows.Count-2)
{
str2 = dt(DataTable对象)rows[c.RowIndex+1]["colname"].ToString();
}else
{
MessageBox.Show("已经是最后一条记录了");
}
  • 打赏
  • 举报
回复
我没看懂你什么意思。。 能在描述下吗?
tangt 2010-04-08
  • 打赏
  • 举报
回复
用户在GridView里不会顺序点啊,
tangt 2010-04-08
  • 打赏
  • 举报
回复
这个I要怎么得到呢?

itliyi 2010-04-08
  • 打赏
  • 举报
回复
先一次性读取 放入DataTable
然后根据索引 下一条就
dt(DataTable对象)rows[i+1]["colname"].ToString()
然后索引临界处判断

110,538

社区成员

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

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

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