Avatar billede stanislavsky Praktikant
08. august 2011 - 22:40 Der er 20 kommentarer og
1 løsning

VB.net og MySql

Jeg har installeret VB.Net Express og MySql, og jeg forsøger at connecte til MySql. Jeg får følgende fejl:
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.

Jeg har forsøgt at læse om Jet 4.0 og så vidt jeg har forstået, supporter Jet 4.0 ikke Mysql. Er der nogen, som ved noget om dette?
Avatar billede arne_v Ekspert
09. august 2011 - 00:36 #1
Hvordan ser din connection string ud?

Du kan connecte til MySQL via ODBC.

Men jeg vil anbefale dig at bruge MySQL Connector for .NET !
Avatar billede arne_v Ekspert
09. august 2011 - 03:08 #2
Dim con As MySqlConnection = New MySqlConnection ("Data Source=xxxxxx;Database=xxxxxx;User Id=xxxxxx;Password=xxxx")

og

Dim con As OdbcConnection = New OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=xxxxxx;Option=16834;Database=xxxxxx;")
Avatar billede stanislavsky Praktikant
09. august 2011 - 13:54 #3
Her Arne

Tak for dit svar.

Se nedenstående - Vil du venligst rette det?

Imports System.Data.SqlClient
Imports System.Data
Imports System.IO
Imports System.Text.RegularExpressions
Imports System.Data.OleDb
Imports MySql.Data.MySqlClient
Imports System.Data.Odbc



Public Sub Test()

        Dim myConnection As OleDbConnection
        Dim myCommand As OleDbCommand
        Dim mySQLString As String

        'Dim con As MySqlConnection = New MySqlConnection("Data Source=localhost;Database=BankData;User Id='root';Password=''")

        Dim con As OdbcConnection = New OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=localhost;Option=16834;Database=BankData;")
        con.Open()

        mySQLString = "Update bankdata set Postings.Code = 99"
        myCommand = New OleDbCommand(mySQLString, con)
        myCommand.ExecuteNonQuery()
       
  End Sub

 
Connection Information
======================
Name:    Local instance MySQL
Host:    localhost:3306
Server:  MySQL
Version: 5.1.54-community
User:    root
Avatar billede arne_v Ekspert
09. august 2011 - 13:57 #4
Hvilken fejl faar du?

Har du installeret MySQL ODBC?
Avatar billede stanislavsky Praktikant
09. august 2011 - 14:06 #5
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine
Avatar billede stanislavsky Praktikant
09. august 2011 - 14:17 #6
Jeg har installeret MySQL ODBC
Avatar billede arne_v Ekspert
09. august 2011 - 17:00 #7
Matcher versionsnummeret i connection string med den version du har installeret?
Avatar billede stanislavsky Praktikant
09. august 2011 - 19:05 #8
Versionsnummeret matchede ikke. Er nu rettet.

Jeg har fjernet det meste af koden, så den ser således ud:

Dim con As OdbcConnection = New OdbcConnection("Driver={MySQL ODBC 5.1.8 Driver};Server=localhost;Option=16834;Database=BankData;")
        con.Open()

Jeg får følgende fejl:
ERROR [IM002] [Microsoft][ODBC Driver Manager] Data Source Name not found and no default drive specified.
Avatar billede stanislavsky Praktikant
09. august 2011 - 19:11 #9
Versionsnummeret matchede ikke. Er nu rettet.

Jeg har fjernet det meste af koden, så den ser således ud:

Dim con As OdbcConnection = New OdbcConnection("Driver={MySQL ODBC 5.1.8 Driver};Server=localhost;Option=16834;Database=BankData;")
        con.Open()

Jeg får følgende fejl:
ERROR [IM002] [Microsoft][ODBC Driver Manager] Data Source Name not found and no default driver specified.
Avatar billede arne_v Ekspert
09. august 2011 - 19:14 #10
Desvaerre er ODBC fejlmeddelelser som oftest mere vild end vej ledende.

Vildt gaet: 5.1 fremfor 5.1.8
Avatar billede stanislavsky Praktikant
09. august 2011 - 19:30 #11
Nu kommer vi nærmere:

ERROR [HY000] [MySQL][ODBC 5.1 Driver]Access denied for user 'ODBC'@'localhost' (using password: NO)

Hvor skal jeg indsætte password?
Avatar billede arne_v Ekspert
09. august 2011 - 19:44 #12
New OdbcConnection("Driver={MySQL ODBC 5.1 Driver};Server=localhost;Option=16834;Database=BankData;User=xxxxxx;Password=xxxxx;")
Avatar billede stanislavsky Praktikant
09. august 2011 - 20:53 #13
:-) Så blev der connectet.

Nu mangler jeg blot at kunne opdatere en tabel. Koden ser således ud:


Dim con As OdbcConnection = New OdbcConnection("Driver={MySQL ODBC 5.1 Driver};Server=localhost;Option=16834;Database=BankData;User=root;Password=240344sd;")
        con.Open()

        mySQLString = "Update bankdata set Postings.Code = 99"
        myCommand = MySqlCommand(mySQLString, con)
        myCommand.ExecuteNonQuery()

Jeg får følgende fejl i linien
myCommand = MySqlCommand(mySQLString, con)


Value of type 'System.Data.Odbc.OdbcConnection' cannot be converted to 'MySql.Data.MySqlClient.MySqlConnection'.
Avatar billede arne_v Ekspert
09. august 2011 - 22:03 #14
myCommand = OdbcCommand(mySQLString, con)
Avatar billede stanislavsky Praktikant
09. august 2011 - 22:10 #15
Der kommer følgende fejl:

'OdbcCommand' is a type and cannot be used as an expression.
Avatar billede arne_v Ekspert
09. august 2011 - 22:17 #16
myCommand = New OdbcCommand(mySQLString, con)
Avatar billede arne_v Ekspert
09. august 2011 - 22:18 #17
Og myCommand skal naturligvis vaere erklaeret som en OdbcCommand
Avatar billede stanislavsky Praktikant
09. august 2011 - 22:58 #18
Tusind tak for hjælpen.
Jeg skal give dig point - du ved sikkert, hvordan det skal gøres - Jeg ved det ikke :-)
Avatar billede arne_v Ekspert
09. august 2011 - 23:19 #19
jeg smider et svar som du kan acceptere
Avatar billede arne_v Ekspert
11. august 2011 - 02:35 #20
Men overvej MySQL connectoren for .NET - bl.a. er fejlbeskeder meget bedre (ODBC fejlbeskeder er ofte ubrugelige).
Avatar billede stanislavsky Praktikant
11. august 2011 - 09:57 #21
Det vil jeg gøre - Tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester