Prova Database

di Frankq il
23 risposte
Ciao a tutti
Sto cercando di applicare l'articolo di Mattei del 2020 Net la gestione del database Microsoft Access tramite VB.Net
Ho creato un form e inserito i richiami al database ma mi segnala che non trova l'ambiente OleDb, cioè mi da errore su OleDbconnection, OleDbCommand e OleDbDataAdapter tipo non definito
Allego il codice del form

Imports System.Data.OleDb
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            CaricaDati()
        Catch ex As Exception
            MessageBox.Show("Errore: " + ex.Message, "Gestione Errore", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    Private Sub CaricaDati()

        Try
            'carico le combobox
            Using sqlConnessione As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\LibroSoci\ArchivioSociP1.mdb")
                sqlConnessione.Open()
                Using CommandSql As New OleDbCommand("Select ID, Denominazione FROM Clienti", sqlConnessione)
                    Using dtaAdapter As New OleDbDataAdapter(CommandSql)
                        Using dttDati As New DataTable()
                            dtaAdapter.Fill(dttDati)
                            CmbClienti.ValueMember = "ID"
                            CmbClienti.DisplayMember = "Denominazione"
                            CmbClienti.DataSource = dttDati.DefaultView
                        End Using
                        Using dttDati As New DataTable
                            dtaAdapter.SelectCommand = New OleDbCommand("Select ID, NumeroFattura FROM Fatture", sqlConnessione)
                            dtaAdapter.Fill(dttDati)
                            CmbFattura.ValueMember = "ID"
                            CmbFattura.DisplayMember = "NumeroFattura"
                            CmbFattura.DataSource = dttDati.DefaultView
                        End Using
                        Using dttDati As New DataTable
                            dtaAdapter.SelectCommand = New OleDbCommand("SELECT fat.*, cli.*, ord.*  FROM ((Fatture fat left join Clienti cli on fat.idclienti = cli.id) left join ordini ord on fat.id = ord.idfattura)", sqlConnessione)
                            dtaAdapter.Fill(dttDati)
                            DtgDati.DataSource = dttDati
                        End Using
                    End Using
                End Using
            End Using
        Catch ex As Exception
            MessageBox.Show("Errore: " + ex.Message, "Gestione Errore", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub
End Class

Dove sbaglio?

Franco

23 Risposte

  • Frankq ha scritto:


    Ho creato un form e inserito i richiami al database ma mi segnala che non trova l'ambiente OleDb, cioè mi da errore su OleDbconnection, OleDbCommand e OleDbDataAdapter tipo non definito
    Hai aggiunto un riferimento alla libreria System.Data?
  • In cima prima della form ho messo Imports System.Data.OleDb ma se ci vado col mouse mi dice che non importava
  • Col cursore sulla riga della Connection appare una lampadina con dei suggerimenti tra cui installa il pacchetto Oledb
  • Prova ad aggiungere: Imports System.Data.Common in cima alle imports
  • Ciao posta il link all'articolo così abbiamo una visione completa
  • Frankq ha scritto:


    Ciao a tutti
    Sto cercando di applicare l'articolo di Mattei del 2020 Net la gestione del database Microsoft Access tramite VB.Net
    Ho creato un form e inserito i richiami al database ma mi segnala che non trova l'ambiente OleDb, cioè mi da errore su OleDbconnection, OleDbCommand e OleDbDataAdapter tipo non definito
    Allego il codice del form
    
    Imports System.Data.OleDb
    Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Try
                CaricaDati()
            Catch ex As Exception
                MessageBox.Show("Errore: " + ex.Message, "Gestione Errore", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End Sub
    
        Private Sub CaricaDati()
    
            Try
                'carico le combobox
                Using sqlConnessione As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\LibroSoci\ArchivioSociP1.mdb")
                    sqlConnessione.Open()
                    Using CommandSql As New OleDbCommand("Select ID, Denominazione FROM Clienti", sqlConnessione)
                        Using dtaAdapter As New OleDbDataAdapter(CommandSql)
                            Using dttDati As New DataTable()
                                dtaAdapter.Fill(dttDati)
                                CmbClienti.ValueMember = "ID"
                                CmbClienti.DisplayMember = "Denominazione"
                                CmbClienti.DataSource = dttDati.DefaultView
                            End Using
                            Using dttDati As New DataTable
                                dtaAdapter.SelectCommand = New OleDbCommand("Select ID, NumeroFattura FROM Fatture", sqlConnessione)
                                dtaAdapter.Fill(dttDati)
                                CmbFattura.ValueMember = "ID"
                                CmbFattura.DisplayMember = "NumeroFattura"
                                CmbFattura.DataSource = dttDati.DefaultView
                            End Using
                            Using dttDati As New DataTable
                                dtaAdapter.SelectCommand = New OleDbCommand("SELECT fat.*, cli.*, ord.*  FROM ((Fatture fat left join Clienti cli on fat.idclienti = cli.id) left join ordini ord on fat.id = ord.idfattura)", sqlConnessione)
                                dtaAdapter.Fill(dttDati)
                                DtgDati.DataSource = dttDati
                            End Using
                        End Using
                    End Using
                End Using
            Catch ex As Exception
                MessageBox.Show("Errore: " + ex.Message, "Gestione Errore", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End Sub
    End Class
    
    
    Dove sbaglio?

    Franco
    Ciao Franco,
    che messaggio di errore ti da? Puoi riportare il testo completo del messaggio di errore? Sicuro che hai i driver di Microsoft Access ?
    Facci sapere così troviamo una soluzione.
    Grazie
    Emanuele
  • Gravità Codice Descrizione Progetto File Riga Stato eliminazione
    Errore BC30002 Il tipo 'OleDbCommand' non è definito. ProvaA3 C:\Users\User\source\repos\ProvaA3\Form1.vb 33 Attivo
    Errore BC30002 Il tipo 'OleDbCommand' non è definito. ProvaA3 C:\Users\User\source\repos\ProvaA3\Form1.vb 26 Attivo
    Errore BC30002 Il tipo 'OleDbDataAdapter' non è definito. ProvaA3 C:\Users\User\source\repos\ProvaA3\Form1.vb 18 Attivo
    Errore BC30002 Il tipo 'OleDbCommand' non è definito. ProvaA3 C:\Users\User\source\repos\ProvaA3\Form1.vb 17 Attivo
    Errore BC30002 Il tipo 'OleDbConnection' non è definito. ProvaA3 C:\Users\User\source\repos\ProvaA3\Form1.vb 15 Attivo


    Inoltre mi dice di istallare il pacchetto System.Data.OleDb e Microsoft.office.interop.excel

    Ho trovato e scaricato system.data.oledb.6.0.0.nupkg ma non so come istallarlo

    Grazie per l'attenzione
    Franco
  • Hai seguito il suggerimento che ti ho dato?
  • Frankq ha scritto:


    Gravità Codice Descrizione Progetto File Riga Stato eliminazione
    Errore BC30002 Il tipo 'OleDbCommand' non è definito. ProvaA3 C:\Users\User\source\repos\ProvaA3\Form1.vb 33 Attivo
    Errore BC30002 Il tipo 'OleDbCommand' non è definito. ProvaA3 C:\Users\User\source\repos\ProvaA3\Form1.vb 26 Attivo
    Errore BC30002 Il tipo 'OleDbDataAdapter' non è definito. ProvaA3 C:\Users\User\source\repos\ProvaA3\Form1.vb 18 Attivo
    Errore BC30002 Il tipo 'OleDbCommand' non è definito. ProvaA3 C:\Users\User\source\repos\ProvaA3\Form1.vb 17 Attivo
    Errore BC30002 Il tipo 'OleDbConnection' non è definito. ProvaA3 C:\Users\User\source\repos\ProvaA3\Form1.vb 15 Attivo


    Inoltre mi dice di istallare il pacchetto System.Data.OleDb e Microsoft.office.interop.excel

    Ho trovato e scaricato system.data.oledb.6.0.0.nupkg ma non so come istallarlo

    Grazie per l'attenzione
    Franco
    Per oledb hai seguito il consiglio di Oregon?

    Che versione usi di Visual Studio? E che quale versione del framework?
  • Per chi non lo conoscesse, @lele2006 è Mattei, l'autore di buona parte degli articoli .net di IProgrammatori
  • Sono riuscito ad istallare System.Data.OleDb
    Non ho capito bene come ho fatto
    Tutti gli errori sono spariti, continuo la prova

    Grazie per la collaborazione
    Franco
  • Franco,
    stai usando il Framework 5 o 6 come versione?

    Facci sapere.
    Grazie
    Emanuele
  • Ciao Emanuele,
    Sto usando il Framework 6
    Permettimi una domanda
    Io sono della vecchia scuola, usavo ADO molto semplicemente, senza controlli dedicati ecc.
    Creavo una connessione ad un database, poi definivo un RecordSet con una query su una tabella, con .AddNew inserivo record
    e con .Update lo modificavo.
    In questo futuro in cui mi sento fuori posto, esiste ancora qualcosa di simile?

    Franco
Devi accedere o registrarti per scrivere nel forum
23 risposte