2012-01-11 47 views
0

請幫我解決這個問題。我有一個datagridview綁定到數據集,當我選擇一個項目到datagridview刪除,我得到正確的項目。但是當我將datagridview排序到某個字段時,它會返回一個不同的項目。這裏是我的代碼:通過使用datagridview的currentrow屬性獲取數據集的行號

DSet.Tables("sec_company_address").Rows(sec_company_address.CurrentRow.Index).Delete() 

編輯:我嘗試這一行,但它帶來了一個錯誤。

Dim xID As String = sec_role_module.CurrentRow.Cells("nID").Value.ToString 
sDataSet.Tables(sec_role_module.Name).Rows.Find(xID).Delete() 

enter image description here

回答

0

通過改變你的DataGridView的排序,你指的是另一個項目在數據集中,因爲你的數據集仍然是一樣的初始加載。

你如何解決這個問題? 您可以在第一列中使用唯一標識符,您可以參考該標識符刪除數據集中的行。

1

在此之前,您必須在sec_company_address中設置主列,以便DELETE可以工作。並嘗試這個辦法:

' change columnName to your column which is the Unique Identifier 
dim xID as string = dataGridView1.CurrentRow.Cells("columnName").Value.Tostring 
DSet.Tables("sec_company_address").Rows.Find(xID).Delete() 
DSet.Tables("sec_company_address").AcceptChanges() 

UPDATE

這個怎麼樣?

For Each xRow As DataRow In sec_role_module.SelectedRows 
     sDataset.Tables(sec_role_module.Name).Rows.Remove(xRow) 
     sDataset.AcceptChanges() 
    Next 
+0

謝謝你的答案..我試過你的建議,但它返回一個錯誤...表沒有主鍵..但我的表有它...我不知道爲什麼。 – illumi 2012-01-12 09:00:45

+0

你可以發佈你的數據集和你的datagridview的截圖嗎? – 2012-01-12 09:21:12

+0

我只是更新我的問題先生。 – illumi 2012-01-12 09:29:25

相關問題