[Visual Basic Express] Salvare i dati in un DB Access

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
Ciao a tutti,

stò creando un'applicazione per gestire le ricette di cucina. Riesco ad interfacciarmi al DB e a leggere e scorrere i dati, ma non riesco ad immagazzinarne di nuovi. Vi posto il codice che ho messo nel form:
Imports System.Data.OleDb
Public Class frmDessert
Dim connStr As String = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""C:\ricette\DBRicette.mdb"""
Dim da As New OleDbDataAdapter ' DataAdapter
Dim ds As DataSet = New DataSet() ' DataSet
Dim bs As New BindingSource() ' BindingSource
Private Sub frmDessert_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: questa riga di codice carica i dati nella tabella 'DBRicetteDataSet.Dessert'. È possibile spostarla o rimuoverla se necessario.
Me.DessertTableAdapter.Fill(Me.DBRicetteDataSet.Dessert)
' Creazione connessione al DB
Dim conn As OleDbConnection
conn = New OleDbConnection(connStr)

' Pulizia DataSource
ds.Clear()
' apre connessione
conn.Open()

' Queri sul DB attraverso l'oggetto DataAdapter
da.SelectCommand = New OleDb.OleDbCommand
da.SelectCommand.Connection = conn
da.SelectCommand.CommandText = "SELECT * FROM Dessert"
da.SelectCommand.CommandType = CommandType.Text
da.SelectCommand.ExecuteNonQuery()

' Viene riempito il DataSet con i dati nel DataAdapter
da.Fill(ds, "Dessert")

' Collegamento del Binding Source con il DataSet
bs.DataSource = ds
bs.DataMember = "Dessert"

' Popolamento della DataGridView con i dati nel DataSet
DessertDataGridView.DataSource = bs

' chiude connessione
conn.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.DessertBindingSource.MovePrevious()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.DessertBindingSource.MoveNext()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
DessertBindingSource.AddNew()

End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim changes As DataSet = ds.GetChanges()
Dim connection As OleDbConnection = New OleDbConnection(connStr)

' Creazione CommandBuilder
Dim cmb As New OleDbCommandBuilder(da)

' Se articoliDataSet ha subito cambiamenti fa Update sul DB
If Not changes Is Nothing Then
Try
connection.Open()
da.Update(changes, "Dessert")
da.UpdateCommand = cmb.GetUpdateCommand
da.AcceptChangesDuringUpdate = True
MessageBox.Show("OK", "Ricettario PRO", MessageBoxButtons.OK, MessageBoxIcon.Information)
connection.Close()
Catch ex As Exception
MessageBox.Show("Si è verificato un errore durante il salvataggio dei dati nel database!", "Ricettario PRO", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End If
End Sub
End Class

qualcuno mi sa dire dove sbaglio?
 
Ciao

Hai provato a seguire la configurazione guidata dell'applicazione alla sorgente dati attraverso i controlli Data presenti nella toolbox?

Essi ti permetteranno sia di inserire nuovi record, modificare i dati inseriti, cancellare le registrazioni effettuate nell'origine dati

Buon lavoro
 

Discussioni simili