2012-01-11 4 views
0

この問題を解決してください。私はデータセットにバインドされているdatagridviewを持っていて、削除するDataGridviewのアイテムを選択すると、正しいアイテムが取得されます。しかし、私はいくつかのフィールドにdatagridviewをソート、それは別の項目を返します。ここに私のコードです:datagridviewのcurrentrowプロパティを使用してデータセットの行番号を取得する

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

編集:私はこの行をしようとするが、エラーが表示されます。あなたのDataGridViewのソートを変更することにより

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

データセットは、まだ初期ロードと同じであるので、あなたは、あなたのデータセット内の別の項目を参照してください。

これをどのように修正できますか? 最初の列に一意の識別子を使用できます。この識別子を使用して、データセット内の行を削除することができます。

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

方法:これを試してみてください?

+0

回答ありがとうございます。私はあなたの提案を試みましたが、エラーを返します。テーブルにはプライマリキーはありませんが、テーブルには...あります。 – illumi

+0

あなたはあなたのdatasetとあなたのdatagridviewのスクリーンショットを投稿できますか? –

+0

私は自分の質問を更新します。 – illumi

関連する問題