2013-06-13 128 views
1

我說的是這樣的:如何獲得bindingNavigator當前頁面

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

不知何故,我需要得到該行的數據庫信息。

我的程序alllows搜索,所以我不知道它是如何工作的。但我需要的是,從bindingNavigator窗口中查看活動行的主鍵(id),然後從該id中運行查詢以從另一個具有與主鍵相同的外鍵的表中獲取一些數據。

因此,要在左側導航一個導航框來瀏覽數據庫中的行,然後每次更改活動行時,右側的3個文本框將從另一個表中獲取相關數據(與表1中的主鍵的外鍵)。

我已經嘗試了一段時間,這個例如:

MessageBox.Show(bindingNavigatorPnositionItem.GetCharIndexFromPosition); 

我知道這是行不通的,我不知道我在做什麼真的,因爲這將不利於畢竟如果有人在搜索,因爲它不是主鍵。我可以讀取用戶更改頁面時顯示的「id」字段中的數據 - 但是,如何檢查用戶是否更改頁面?

+0

您的圖片鏈接並沒有顯示你正在嘗試溝通的東西。 – Edper

+0

這是一張啓用了「詳細信息」的表格,我從數據源中拖放。如果有100行,它就像100箇中的1個一樣。 – user2480500

+1

我可能沒有正確理解,但綁定源的當前項目可以通過'bindingNavigator.BindingSource.Current'獲得... –

回答

2

我不完全確定你想達到什麼目的,但是如果你想獲得當前記錄的ID或Primary Key查看,並且每當位置發生變化時它就會更新,那麼你可能會喜歡這樣的:

在你,你可以初始化PositionChangedEventHandler

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()); 
}