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

    Mancato salvataggio di dati nel DB

    Salve ragazzi ho iniziato da poco e programmare in VB.net e ho seguito una esercitazione di esempio. Ho creato una agenda elettronica dove si possono memorizzare i contatti e modificarli.
    Funziona correttamente tutto fino a quando non chiudo l'applicazione. Alla chiusira infatti mi perde tutti i cambiamenti fatti.
    Da cosa può dipendere?
    Vi posto il codice:
    codice:
    Public Class Form1
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: questa riga di codice carica i dati nella tabella 'AgendaDataSet.Rubrica'. È possibile spostarla o rimuoverla se necessario.
            Me.RubricaTableAdapter.Fill(Me.AgendaDataSet.Rubrica)
    
        End Sub
    
        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
            BindingNavigator1.Refresh()
        End Sub
    
        Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
            Close()
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub
    
        Private Sub BindingNavigatorPositionItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorPositionItem.Click
        End Sub
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            If Button3.Text = "Modifica" Then
                'Attiva la funzione di modifica. 
                BindingNavigator1.Update()
                Button3.Text = "Annulla"
                Button6.Visible = True
            Else
                'Annulla le modifiche. 
                BindingNavigator1.BindingSource.CancelEdit()
                Button6.Visible = False
                Button3.Text = "Modifica"
            End If
        End Sub
    
        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
            'Salva le modifiche. 
            BindingNavigator1.Update()
            Button6.Visible = False
            Button3.Text = "Modifica"
            Button2.Text = "Aggiungi"
    
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            If Button2.Text = "Aggiungi" Then
                'Attiva la funzione di aggiunta. 
                'Data1.Recordset.AddNew()
                BindingNavigator1.BindingSource.AddNew()
                Button2.Text = "Annulla"
                Button6.Visible = True
            Else
                'Annulla le modifiche. 
                BindingNavigator1.BindingSource.CancelEdit()
                Button6.Visible = False
                Button2.Text = "Aggiungi"
            End If
    
        End Sub
    
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            'Dim Risposta As Integer
            'Chiede conferma prima di procedere con l'eliminazione. 
            Dim result As DialogResult = MessageBox.Show("Conferma ?", "Eliminazione Record", MessageBoxButtons.YesNo)
            If result = Windows.Forms.DialogResult.Yes Then
                'Elimina i dati. 
                BindingNavigator1.BindingSource.RemoveCurrent()
                'Si sposta nel record precedente. 
                BindingNavigator1.BindingSource.MovePrevious()
            End If
    
        End Sub
    
        Private Sub BindingSource1_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
            RubricaBindingSource1.RemoveCurrent()
        End Sub
    End Class
    Grazie in anticipo a tutti
    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  2. #2
    Ecco mi di nuovo.

    Ho fatto un passo avanti, anzi due.
    Ho fatto in modo di inserire i dati nel db e aggiornare in contempranea la visualizzazione del DataGridView.

    Solo che quando inserisco i dati nel DataGridView prima della riga con i dati del modulo mi inserisce sempre una riga vuota. In pratica mi inserisce due righe di cui la prima vuota e la seonda con i dati.

    Ho notato che quando io apro il modulo il DataGridview mostra una riga vuota.
    Lui in partica mi aggiunge i dati alla quella riga vuota perciò a video avrò prima la riga vuota e poi i dati del modulo.
    Da cosa può dipendere? Vi posto il codice:
    codice:
    Dim objconn As OleDbConnection
            Dim stringaconn As String
            Dim stringasql As String
            Dim objcomm As OleDbCommand
            stringaconn = "Provider=Microsoft.JET.OLEDB.4.0;Data Source="
            stringaconn = stringaconn & "|DataDirectory|\magazzino.mdb"
            objconn = New OleDbConnection(stringaconn)
            objconn.Open()
            stringasql = "Insert into dettaglio(fattura, serialNumber, identicativoInfo, tipoArticolo, marca, codArticolo, confPerScatola, prezzo, descrizioneArticolo, fornitore, dataArrivo, annotazioni) values('" & Me.fattura.Text & "', '" & Me.serialNumber.Text & "', '" & Me.identicativoInfo.Text & "', '" & Me.tipoArticolo.Text & "', '" & Me.Marca.Text & "', '" & Me.codArticolo.Text & "', " & Me.confPerScatola.Text & ", " & Me.prezzo.Text & ", '" & Me.descrizioneArticolo.Text & "', '" & Me.Fornitore.Text & "', #" & Me.dataArrivo.Text & "#, '" & Me.annotazioni.Text & "')"
            objcomm = New OleDbCommand(stringasql, objconn)
            Dim risputente As Integer
            Try
                risputente = objcomm.ExecuteNonQuery()
                'Inizio Aggiornamento DataGridView
                Me.DettaglioTableAdapter.Update(Me.MagazzinoDataSet.dettaglio)
                DettaglioBindingSource.AddNew()
                Dim newRow = DirectCast(DettaglioBindingSource.AddNew(), DataRowView)
                newRow("fattura") = fattura.Text
                newRow("serialNumber") = serialNumber.Text
                newRow("identicativoInfo") = identicativoInfo.Text
                newRow("tipoArticolo") = tipoArticolo.Text
                newRow("marca") = Marca.Text
                newRow("codArticolo") = codArticolo.Text
                newRow("confPerScatola") = confPerScatola.Text
                newRow("prezzo") = prezzo.Text
                newRow("descrizioneArticolo") = descrizioneArticolo.Text
                newRow("fornitore") = Fornitore.Text
                newRow("dataArrivo") = dataArrivo.Text
                newRow("annotazioni") = annotazioni.Text
                DettaglioBindingSource.EndEdit()
                ' Fine aggiornamento DataGridView
                If risputente = 1 Then
                    MsgBox("Inserimento effettuato con successo")
                    objconn.Close()
                    Me.fattura.Text = ""
                    Me.serialNumber.Text = ""
                    Me.identicativoInfo.Text = ""
                    Me.tipoArticolo.Text = ""
                    Me.Marca.Text = ""
                    Me.codArticolo.Text = ""
                    Me.confPerScatola.Text = ""
                    Me.prezzo.Text = ""
                    Me.descrizioneArticolo.Text = ""
                    Me.Fornitore.Text = ""
                    Me.dataArrivo.Text = ""
                    Me.annotazioni.Text = ""
                    Me.annotazioni.Focus()
                End If
            Catch es As Exception
                MsgBox("Errore: il campo cognome e/o nome sono vuoti")
                objconn.Close()
            End Try
    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  3. #3
    Scsate ho scoperto anche un'altra cosa.

    Inserendo i dati mi sono accorto che nel db vengono inseriti due volte mentre nel modulo finche non lo chiudo vengono mostrati solo una volta (Come è giusto che sia) con alternanza tra righe vuote e righe con dati.

    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Il linguaggio va indicato anche nel titolo, come da Regolamento.

    Qui l'ho aggiunto io, tienilo a mente per il futuro.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Scusa grazie.
    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  6. #6
    Ho risolto effettuando il refresh del datagrid e non l'inserimento dei dati nello stesso.

    Buona giornata a tutti.

    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

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.