Prova Database

di il
23 risposte

Prova Database

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

  • Re: Prova Database

    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?
  • Re: Prova Database

    In cima prima della form ho messo Imports System.Data.OleDb ma se ci vado col mouse mi dice che non importava
  • Re: Prova Database

    Col cursore sulla riga della Connection appare una lampadina con dei suggerimenti tra cui installa il pacchetto Oledb
  • Re: Prova Database

    Prova ad aggiungere: Imports System.Data.Common in cima alle imports
  • Re: Prova Database

    Ciao posta il link all'articolo così abbiamo una visione completa
  • Re: Prova Database

    Ecco il link
    https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_net-la-gestione-del-database-microsoft-access-tramite-vbnet-e-c_1678.aspx
  • Re: Prova Database

    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
  • Re: Prova Database

    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
  • Re: Prova Database

    Hai seguito il suggerimento che ti ho dato?
  • Re: Prova Database

    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?
  • Re: Prova Database

    Per chi non lo conoscesse, @lele2006 è Mattei, l'autore di buona parte degli articoli .net di IProgrammatori
  • Re: Prova Database

    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
  • Re: Prova Database

    Franco,
    stai usando il Framework 5 o 6 come versione?

    Facci sapere.
    Grazie
    Emanuele
  • Re: Prova Database

    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