我有一個包含datagridview的表單。基本上這個表單用於從數據庫查詢客戶端。用戶執行搜索後,結果顯示在DGV上。我希望用戶能夠點擊他們想要的客戶端,並能夠在另一個表單上查看他們的信息。當新的客戶端被添加到數據庫時,它將被賦予一個唯一的ID,所以當我真正打開帶有這些信息的表單時,我將使用它。但是,如何通過單擊該行來從DGV中檢索該ID?C#:從DataGridView抓取值
在此先感謝。
我有一個包含datagridview的表單。基本上這個表單用於從數據庫查詢客戶端。用戶執行搜索後,結果顯示在DGV上。我希望用戶能夠點擊他們想要的客戶端,並能夠在另一個表單上查看他們的信息。當新的客戶端被添加到數據庫時,它將被賦予一個唯一的ID,所以當我真正打開帶有這些信息的表單時,我將使用它。但是,如何通過單擊該行來從DGV中檢索該ID?C#:從DataGridView抓取值
在此先感謝。
將Unique-ID設置爲ItemCollection中的標籤對象。
試試這個:
DataGridView.Items[n].Tag = (object)YOUR_UNIQUE_ID
使用CType
(當然如果你希望你的ID相同的命令),你從DataGridView的行的主鍵值。以下是一個示例:
Name = CType(dgview.FindControl("lblname"),Label).Text
在檢索如上所述的值之後,您將編寫一個查詢以使用該鍵進行搜索。從數據庫中檢索ID值後,再次綁定DataGridView以顯示搜索結果。
請注意'CType'只在VB.NET中可用(但即使在那裏,您也應該更喜歡'DirectCast')。這個問題是關於C#的,它需要一種不同風格的轉換。 – 2011-02-25 09:26:24
使用此鏈接。它會幫助你...
配置的網格,設置SelectionMode屬性設置爲FullRowSelect。
我想你的數據加載到使用的東西在DataGridView像
GrdClients.DataSource = ListsOfClients
所以,你將需要處理網格的CellMouseDoubleClick事件。正如你以前的配置SelectionMode屬性設置爲FullRowSelect,你現在可以提取所選擇的客戶端
Client ClientElement = GrdRequests.SelectedRows[0].DataBoundItem
ShowClientForm(ClientElement.Id)
首先,你必須確保DGV包含ID列(您可以通過Visible屬性設置爲false隱藏)
然後,你必須處理DGV.CellClick事件:
(對不起,VB,從實際的代碼複製粘貼)
If e.RowIndex < 0 Then Exit Sub
Dim id as integer = dgv.Item(0, e.RowIndex).Value
其中0是包含您的客戶ID列的索引。
對不起人人我忘了提一件事。客戶首先按客戶名稱搜索。用戶將在文本框中輸入名稱並單擊搜索按鈕。數據庫然後通過名稱查詢。檢索到的客戶端然後列在DGV中。從那裏,用戶選擇他們正在尋找的客戶端,並彈出其信息的表單。 對不起,我感到困惑 – jquirante 2011-02-25 09:47:01
然後......你有一個ID列(可見或隱藏)在你的datagridview? – Jonathan 2011-02-25 10:53:23