Associazioni alla stessa proprietà

di il
2 risposte

Associazioni alla stessa proprietà

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.

2 Risposte

  • Re: Associazioni alla stessa proprietà

    Ho risolto così : ho sostituito :

       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

    con : 

        Sub visualizzaRecord(nrec As Integer)
           idtextbox.DataBindings.Clear()
           nometextbox.DataBindings.Clear()
           indirizzotextbox.Clear()
           captextbox.DataBindings.Clear()
           provtextbox.DataBindings.Clear()
           comunetextbox.DataBindings.Clear()
           
           Dim elemento As DataRow = tempDT.Rows(nrec)
           Try
               idTextBox.Text = elemento(0).ToString
               nometextbox.Text = elemento(1).ToString
               indirizzoTextBox.Text = elemento(2).ToString
               capTextBox.Text = elemento(3).ToString
               provTextBox.Text = elemento(4).ToString
               comuneTextBox.Text = elemento(5).ToString
               RowStateTextBox.Text = elemento.RowState.ToString
               
               PositionItem.Text = CStr(cm.Position + 1)
               CountItem.Text = tempDT.Rows.Count.ToString
           Catch ex As System.Data.DeletedRowInaccessibleException
               MsgBox(ex.Message)
           End Try
       End Sub

    Ora,però,ho un diverso problema con i record cancellati. 

    Ho trovato una soluzione ,ma mi chiedo se esista un modo di “professionale” per affrontare l'argomento.

    Aprirò,appena possibile,un nuovo post.

    Grazie.

  • Re: Associazioni alla stessa proprietà

    Un nuovo thread

Devi accedere o registrarti per scrivere nel forum
2 risposte