Oppure

Loading
13/03/09 10:15
fabio7586
Salve a tutti, ho un problema nella connessione al provider che gestisce il DB (o almeno credo sia questo)
per spiegarvi meglio vi scrivo il codice utilizzato
Dim connessione As OleDb.OleDbConnection
Dim command As OleDb.OleDbCommand
Dim adpter As OleDb.OleDbDataAdapter
Dim connection As String
Dim open As New OpenFileDialog
       
        If open.ShowDialog = Windows.Forms.DialogResult.OK Then
            connection = "Provider=Microsoft.ACE.OLEDB.12.0;Dbq="
            connection = connection & "c:\Database1.mdb"
            connessione = New OleDb.OleDbConnection(connection)
            connessione.Open()

Quando parte l'esecuzione si ferma all'ultima riga scritta dicendomi "the Microsoft.ACE.OLEDB.12.00 Provider is not registered on the local machine"

Sono andato anche in strumenti di amministrazione (ODBC), ho caricato il driver Mdb versione 12 con il databse in questione ma nulla;
Se poi a "Provider" sostituisco la parola "Driver" e ci scrivo quello che ho scritto quando ho creato la connessione ODBC, mi da un errore di index!

C'è qualcuno che può aiutarmi?

Uso vb.net 2008 in ambiente .net framework 3.5

Grazie :)
Ultima modifica effettuata da fabio7586 13/03/09 11:02
aaa
13/03/09 10:50
theprogrammer
12.0

e non

12.00
aaa
13/03/09 11:02
fabio7586
sisi scusa :) è 12.0! non è quello il problema, è qui che ho scritto male! Scusa! :)
aaa
13/03/09 11:32
theprogrammer
Postato originariamente da fabio7586:

sisi scusa :) è 12.0! non è quello il problema, è qui che ho scritto male! Scusa! :)


Beh ... fai attenzione quando riporti del codice nel forum perche' un errore del genere implica quel messaggio da parte del .NET ...

In questo caso, se nel tuo PC NON e' installato Office 2007, allora devi scaricare ed installare l' "ACE Provider" da

microsoft.com/downloads/…



aaa
13/03/09 11:49
fabio7586
Postato originariamente da theprogrammer:

Postato originariamente da fabio7586:

sisi scusa :) è 12.0! non è quello il problema, è qui che ho scritto male! Scusa! :)


Beh ... fai attenzione quando riporti del codice nel forum perche' un errore del genere implica quel messaggio da parte del .NET ...

In questo caso, se nel tuo PC NON e' installato Office 2007, allora devi scaricare ed installare l' "ACE Provider" da

microsoft.com/downloads/…




Grazie, ma l'ho fatto già e continua a darmi questa cosa.. non ho ben capito che cosa sbglio, se nell'impostare una connessione odbc, oppure in fase di progettazione(parte grafica, ho sbagliato a mettere datagridview)..
Sareste così gentili da consigliarmi come impostare le cose, così da raffrontare con il mio e vedere cosa sto sbagliando?:d:d:d:d
aaa
13/03/09 14:26
theprogrammer
Dopo avere installato quel driver NON ti puo' dare piu' quell'errore ... forse te ne da' un altro, probabilmente perche' la stringa dovrebbe essere

connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\Database1.mdb"


Ultima modifica effettuata da theprogrammer 13/03/09 14:27
aaa
13/03/09 14:56
fabio7586
Postato originariamente da theprogrammer:

Dopo avere installato quel driver NON ti puo' dare piu' quell'errore ... forse te ne da' un altro, probabilmente perche' la stringa dovrebbe essere

connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\Database1.mdb"




Grazie, nel frattempo sono riuscito a risolvere, in pratica creando il datagridview, quando andava a pescare la connessione (all'interno del VS2008) aveva impostato la versione 4 e non la 12.
Se non è di troppo disturbo (è la prima volta che opero con dei dtabase all'interno di visual basi .net) ho scritto un altro po di codice
adapter = New OleDb.OleDbDataAdapter("Select COMU_COD FROM `Comuni` where prov=COMU_PROV", connessione)
            adapter.Fill(Data)


Se non metto la where funziona, altrimenti restituisce vuoto.. perchè?
inoltre una volta che ha caricato la table con la select come faccio a passare il valore di ogni campo della riga in una variabile diversa?
(Io lavoro tutti i giorni con sql, ma ad un livello più elevato e con costruttori di query, però sta di fatto che come l'ho scritta dovrebbe funzionare ed invece no!)
Ultima modifica effettuata da fabio7586 13/03/09 14:57
aaa
13/03/09 18:14
Il Totem
Penso che COMU_PROV non sia valido. Devi mettere o una costante o, nel caso di un parametro, usare l'apposita collezione SqlParameterCollection dell'oggetto SqlCommand: la query non seleziona niente perchè non trova niente che corrisponda alla condizione, e al computer non si può imputare errore (purtruppo, o per fortuna).
Puoi accedere ad ogni valore mediante colonne e righe della tabella:
For Each Row As DataRow In DataTable.Rows
  For Each Column As DataColumn In DataTable.Columns
    Dim Cell As String = Row.Item(Column.ColumnName).ToString()
  Next
Next
aaa