Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    DataAdapter.Update [VB]

    Ciao a tutti,
    devo eliminare tutti i record da un database tramite un dataset. il dataset e il dataAdapter sono generati in modo automatico da Visual Studio 2010 quindi dovrei avere già tutto quello che serve. Riesco a fare operazioni di inserimento, modifica, eliminazione di UN solo record. Al momento dell'eliminazione di un solo record passo al metodo Delete del dataAdapter ciascuno dei parametri presenti nella riga da eliminare e non la riga stessa. Il metodo lo richiede e non ho trovato altro modo. Ma qui non c'è problema, la riga viene eliminata. Il problema si presenta se devo eliminare tutte le righe. Il metodo Update del DataAdapter dovrebbe apportare tutte le modifiche fatte al DataSet e perciò se chiamo il metodo Clear del DataSet, poi acceptChanges e infine Update del DataAdapter il database dovrebbe svuotarsi. Questo non accade e chiedo a voi il perché...

    Posto il codice all'interno della classe

    codice:
    Dim DbScuoleDataSet As IDAT.DbScuoleDataSet
        Dim DbScuoleDataSetInfoScuolaEntityTableAdapter As IDAT.DbScuoleDataSetTableAdapters.InfoScuolaEntityTableAdapter
    
        Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
            DbScuoleDataSet = CType(Me.FindResource("DbScuoleDataSet"), IDAT.DbScuoleDataSet)
            DbScuoleDataSetInfoScuolaEntityTableAdapter = New IDAT.DbScuoleDataSetTableAdapters.InfoScuolaEntityTableAdapter()
            DbScuoleDataSetInfoScuolaEntityTableAdapter.Fill(DbScuoleDataSet.InfoScuolaEntity)
        End Sub
    
        Private Sub ButtonCancella_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles ButtonCancella.Click
            Dim Conferma = MsgBox("Sei sicuro di voler eliminare tutti i record del database?", vbYesNo)
            Select Case Conferma
                Case vbYes
    
                    DbScuoleDataSet.Clear()
                    DbScuoleDataSet.AcceptChanges()
                    DbScuoleDataSetInfoScuolaEntityTableAdapter.Update(DbScuoleDataSet)
                    MsgBox("Tutti i record sono stati cancellati")
    
                Case vbNo
    
            End Select
    
        End Sub
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    111
    Non ho capito un granchè, prova a dare clear e basta. Dovrebbe toglierti tutto. ANche la (o le)
    tables

  3. #3
    il metodo clear elimina tutti i record dal DataSet. Chiamando la proprietà count si può accertare che ciò avvenga. Tutti i record nel dataset vengono eliminati, ma il database rimane intatto, anche chiamando il metodo update...

  4. #4
    Ho risolto il problema. Ma penso ci sia un metodo migliore per gestirlo. Come detto prima il metodo Delete del dataAdapter vuole in ingresso tutti i parametri uno per uno per cancellare una singola riga. Ho creato un ciclo For Next che legge una riga alla volta dal DataSet, al tempo stesso immagazzina in variabili i valori presenti nei campi colonna della riga e passa al metodo Delete le variabili come parametri. L'operazione viene eseguita per ogni singola riga, avrei voluto evitarlo visto che il metodo Update dovrebbe mappare il contenuto del DataSet nel DB...

    Ecco il codice:

    codice:
        Private Sub ButtonCancella_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles ButtonCancella.Click
            Dim Conferma = MsgBox("Sei sicuro di voler eliminare tutti i record del database?", vbYesNo)
            Select Case Conferma
                Case vbYes
                    For Each row In DbScuoleDataSet.InfoScuolaEntity
                        Dim NomeScuola As String = row.NomeScuola
                        Dim Indirizzo As String = row.Indirizzo
                        Dim Meccanografico As String = row.Meccanografico
                        Dim Telefono As String = row.Telefono
                        Dim Email As String = row.Email
                        DbScuoleDataSetInfoScuolaEntityTableAdapter.Delete(NomeScuola, Indirizzo, Meccanografico, Telefono, Email)
                    Next
                    MsgBox("Tutti i record sono stati cancellati")
                Case vbNo
    
            End Select
    
        End Sub
    Grazie comunque. Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.