Ciao a tutti, questo è il mio primo messaggio in questo forum. Sto cercando di lavorare in un mio progetto VB.NET 2010 Express con un database di MS Access. Sono riuscito a fare tutto quello che mi interessava tranne ad eliminare i record dal database. In effetti apparentemente se elimino un record questo viene rimosso dal database, ma quando vado a chiudere il programma e succesivamente a riavviarlo ecco che il record ritorna. Per quanto ne ho capito l'eliminazione avviene sul dataset "MioDataSet" ma poi non viene riportata sul database originale malgrado io abbia usato il metodo "update".
Ecco quello che ho fatto in sintesi, queste le dichiarazioni:
Questo è quello che faccio all'avvio del programma:codice:Private MiaConnection As New OleDb.OleDbConnection Private MioDataSet As New DataSet Private MioDataAdapter As OleDb.OleDbDataAdapter Private MioIndex As Integer = 0
Questo, ad esempio, per modificare un record (e funziona):codice:Private Sub FormMain_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load MiaConnection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""PrimaProva.accdb""" MiaConnection.Open() MioDataAdapter = New OleDb.OleDbDataAdapter("SELECT* FROM PrimaTabella", MiaConnection) MioDataAdapter.Fill(MioDataSet, "NomeQualunque") MiaConnection.Close() End Sub
Questo invece per eliminare un record. Come ho detto sembra funzionare, ma non elimina il record dal file originale e quindi questo ricompare al successivo avvio del programma:codice:Private Sub ButtonUpdate_Click(sender As System.Object, e As System.EventArgs) Handles ButtonUpdate.Click MioDataSet.Tables("NomeQualunque").Rows(MioIndex).Item("Nome") = TextBoxNome.Text MioDataSet.Tables("NomeQualunque").Rows(MioIndex).Item("Cognome") = TextBoxCognome.Text Dim MioCommandBuilder As New OleDb.OleDbCommandBuilder(MioDataAdapter) MioDataAdapter.Update(MioDataSet, "NomeQualunque") End Sub
Dove sto sbagliando a vostro avviso?codice:Private Sub ButtonDelete_Click(sender As System.Object, e As System.EventArgs) Handles ButtonDelete.Click MioDataSet.Tables("NomeQualunque").Rows(MioIndex).Delete() MioDataSet.Tables("NomeQualunque").AcceptChanges() Dim MioCommandBuilder As New OleDb.OleDbCommandBuilder(MioDataAdapter) MioDataAdapter.Update(MioDataSet, "NomeQualunque") End Sub

Rispondi quotando