Ho questo codice:
Imports System.Data.OleDb
Public Class DbMedici
Dim cnn As New OleDbConnection(My.Settings.tabelleENASConnectionString)
Dim da As New OleDbDataAdapter("Select id,ragsoc1,indirizzo,cap,prov,comune from medici_copia order by ragsoc1", cnn)
Dim ds As DataSet
Dim dv As New DataView
Dim cm As CurrencyManager
Dim newrec As Boolean
Dim cls As New ClsDb
Private Sub DbMedici_Load(sender As Object, e As EventArgs) Handles MyBase.Load
cls.connessione()
Fill_DataSource()
visualizzaRecord()
ShowPosition()
End Sub
Private Sub Fill_DataSource()
ds = New DataSet()
da.Fill(ds, "medici_copia")
dv = New DataView(ds.Tables("medici_copia"))
dgv.DataSource = dv
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect
cm = CType(Me.BindingContext(dv), CurrencyManager)
End Sub
Sub visualizzaRecord()
idtextbox.DataBindings.Clear()
nometextbox.DataBindings.Clear()
indirizzotextbox.Clear()
captextbox.DataBindings.Clear()
provtextbox.DataBindings.Clear()
comunetextbox.DataBindings.Clear()
Try
idtextbox.DataBindings.Add("Text", dv, "id")
nometextbox.DataBindings.Add("Text", dv, "ragsoc1")
indirizzotextbox.DataBindings.Add("Text", dv, "indirizzo")
captextbox.DataBindings.Add("Text", dv, "cap")
provtextbox.DataBindings.Add("Text", dv, "prov")
comunetextbox.DataBindings.Add("Text", dv, "comune")
Catch ex As System.ArgumentException
MsgBox(ex.Message)
End Try
End Sub
Quando effettuo la cancellazione di un elemento (e devo poi aggiornare le text del form) per visualizzare un altro nominativo,mi viene restituito il seguente errore :
System.ArgumentException: 'In questo modo la raccolta avrebbe due associazioni alla stessa proprietà"
Private Sub Cancella_Click(sender As Object, e As EventArgs) Handles Cancella.Click
Dim opt As DialogResult = MessageBox.Show(Me, "Confermi la cancellazione di questo elemento?", "AVVISO", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
If opt = DialogResult.Yes Then
Dim posizioneAttuale As Integer = cm.Position
Dim query As String = "Delete from medici_copia where id=" & Val(idtextbox.Text)
cls.sql(query, "DbMedici")
Fill_DataSource()
visualizzaRecord()
Me.BindingContext(dv).Position = posizioneAttuale
ShowPosition()
MsgBox("Record cancellato")
End If
Mi aiutate a risolvere questo problema, che mi impegna già da alcuni giorni? Grazie.