Salve,
ho trovato questo link http://www.adszone.org/vbnet.aspx?page=adonet3 in cui è riportato un esempio di come utilizzare DataSet, DataTable e aggiornare il database dopo aver aggiornato i due oggetti. Ho modificato questo esempio lanciando il metodo di Inserimento() da un pulsante. I dati da inserire vengono letti riga per riga da un file e la DataTable del DataSet mi si riempie normalmente. Subito dopo il metodo Inserimento lancio anche il metodo AggiornaDatabase() ma non aggiorna nulla. Dove è l'errore?



File contenente il Form (è solo lo spezzone che interessa)
codice:
Dim db As New GestioneDatabase

Private Sub Leggi()



        'Dim oFile As System.IO.File
        Dim oRead As System.IO.StreamReader
        Dim indirizzo As String = ""



        Try
            oRead = IO.File.OpenText("C:\elencocomuni.txt")
          
            While oRead.Peek <> -1

                indirizzo = oRead.ReadLine().ToString()
                'MsgBox(oRead.ReadLine())
                Riempi(indirizzo)


            End While
            oRead.Close()
        Catch ex As Exception
            MsgBox(ex.Message)



        End Try
    End Sub

Private Sub Riempi(ByVal indirizzo As String)

        Dim chiavi As String = "comune territorio arte cultura sociale vita"
        Dim home As Boolean = False

        Dim visite As Int32 = 0
        Dim ind As String = indirizzo

        db.Inserimento(ind, chiavi, home, visite)
        db.AggiornaDatabase()


    End Sub
File contenente la gestione del Database (solo lo spezzone che interessa):
codice:
Public Sub AggiornaDatabase()

        If objDataSet Is Nothing Then Exit Sub

        Dim objDataAdapter As SqlCeDataAdapter

        Try
            Open()

            Dim sQuery As String = "select * from sitipermessi"
            Dim sInsert As String = "insert into sitipermessi " & _
                            "(Indirizzo, ParoleChiavi, Home, Visite) values (?, ?, ?, ?)"
            Dim sDelete As String = "delete from sitipermessi where ID = ?"
            Dim sUpdate As String = "update sitipermessi " & _
                            "set Indirizzo = ?,ParoleChiavi = ?, Home = ?, Visite = ? where ID = ?"

            Dim objInsertCmd As New SqlCeCommand(sInsert, objConn)
            Dim objDeleteCmd As New SqlCeCommand(sDelete, objConn)
            Dim objUpdateCmd As New SqlCeCommand(sUpdate, objConn)

            Dim objParam As SqlCeParameter

            ' Insert
            objParam = objInsertCmd.Parameters.Add("@ind", _
 SqlDbType.NVarChar, 100)
            objParam.SourceColumn = "Indirizzo"
            objParam.SourceVersion = DataRowVersion.Original

            objParam = objInsertCmd.Parameters.Add("@chiavi", _
 SqlDbType.NText)
            objParam.SourceColumn = "ParoleChiavi"
            objParam.SourceVersion = DataRowVersion.Original

            objParam = objInsertCmd.Parameters.Add("@home", _
SqlDbType.Bit)
            objParam.SourceColumn = "Home"
            objParam.SourceVersion = DataRowVersion.Original

            objParam = objInsertCmd.Parameters.Add("@visite", _
SqlDbType.Int)
            objParam.SourceColumn = "Visite"
            objParam.SourceVersion = DataRowVersion.Original

            ' Delete
            objParam = objDeleteCmd.Parameters.Add("@id", _
 SqlDbType.Int)
            objParam.SourceColumn = "ID"
            objParam.SourceVersion = DataRowVersion.Original

            ' Update
            objParam = objUpdateCmd.Parameters.Add("@Indirizzo", _
 SqlDbType.NVarChar)
            objParam.SourceColumn = "Indirizzo"
            objParam.SourceVersion = DataRowVersion.Current

            objParam = objUpdateCmd.Parameters.Add("@chiavi", _
 SqlDbType.NText)
            objParam.SourceColumn = "ParoleChiavi"
            objParam.SourceVersion = DataRowVersion.Current

            objParam = objUpdateCmd.Parameters.Add("@home", _
 SqlDbType.Bit)
            objParam.SourceColumn = "Home"
            objParam.SourceVersion = DataRowVersion.Current

            objParam = objUpdateCmd.Parameters.Add("@visite", _
 SqlDbType.Int)
            objParam.SourceColumn = "Visite"
            objParam.SourceVersion = DataRowVersion.Current

            objParam = objUpdateCmd.Parameters.Add("@id", _
 SqlDbType.Int)
            objParam.SourceColumn = "id"
            objParam.SourceVersion = DataRowVersion.Original

            objDataAdapter = New SqlCeDataAdapter(sQuery, objConn)
            Dim cmdBldr = New SqlCeCommandBuilder(objDataAdapter)




            objDataAdapter.InsertCommand = objInsertCmd
            objDataAdapter.DeleteCommand = objDeleteCmd
            objDataAdapter.UpdateCommand = objUpdateCmd


            ' table.AcceptChanges()
            'MessageBox.Show("Number of rows: " & objDataSet.Tables(0).Rows.Count)


            Try
                objDataAdapter.Update(objDataSet.Tables(0))
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            If Not Nothing Is objDataAdapter.InsertCommand Then
                objDataAdapter.InsertCommand.Dispose()
           
            End If

        Catch e As Exception
            MsgBox(e.Message)
        End Try

            Close()

    End Sub

 Public Sub Inserimento(ByVal ind As String, ByVal chiavi As String, ByVal home As Boolean, _
                           ByVal visite As Int32)
        If objDataSet Is Nothing Then Exit Sub

        Try



            With objDataSet.Tables("sitipermessi")
                


                'Dim table As DataTable = objDataSet.Tables("sitipermessi")
                Dim objRow As DataRow = .Rows.Add
                objRow.BeginEdit()

                objRow("Indirizzo") = ind
                objRow("ParoleChiavi") = chiavi
                objRow("Home") = home
                objRow("Visite") = visite
                objRow.EndEdit()
                'table.Rows.Add(objRow)

            End With

        Catch e As Exception
            MsgBox(e.Message)
        End Try
    End Sub