1

我说的是这个:

http://i.imgur.com/Q5J3LEK.png

我不知何故需要获取该行的数据库信息。

我的程序允许搜索,所以我不确定它是如何工作的。但我需要的是,从在 bindingNavigator 窗口中查看的活动行中获取主键(id),然后从该 id 运行查询以从另一个具有与主键相同外键的表中获取一些数据.

所以左边会有一个导航框来导航数据库中的行,然后每次更改活动行时,右边的3个文本框将从另一个表中获取相关数据(用外键连接到表 1 中的主键)。

我已经尝试了一段时间,例如:

 MessageBox.Show(bindingNavigatorPnositionItem.GetCharIndexFromPosition);

我意识到这行不通,我不确定我到底在做什么,因为如果有人在搜索,这根本无济于事,因为它不是主键。我可以读取用户更改页面时显示的“id”字段中的数据 - 但是如何检查用户是否更改了页面?

4

1 回答 1

3

我不确定您想要实现什么,但是如果您想Primary Key查看当前记录的 ID 或 ID,并且每次位置发生变化时都会更新它,那么您可能会这样做:

在你的Form_Load你可以初始化PositionChanged EventHandler

 this.bindingNavigator1.BindingSource.PositionChanged += new EventHandler(BindingSource_PositionChanged);

然后事件处理程序将获取当前列或Primary Key您想要的。假设您的主键是CustomerID

 void BindingSource_PositionChanged(object sender, EventArgs e)
 {
     DataRowView currRow = (DataRowView)bindingNavigator1.BindingSource.Current;
     // You could use currRow["CustomerID"].ToString() value below to filter now the related table that has the Foreign Key
     MessageBox.Show(currRow["CustomerID"].ToString()); 
 }
于 2013-06-13T02:51:41.157 回答