none
VisualBasic 2015 - Connection String RRS feed

  • Frage

  • Hallo alle zusammen.

    ich habe ein neues Projekt in VS 2015 mit VisualBasic 2015 gestartet.

    Allerdings beim DB Zugriff mit MySQL, macht VB 2015 etwas komisches.

    VB 2015 wandelt meinen Originalen DB ConnectionString:
    ​Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;


    zur Laufzeit in folgendes um:
    ​Server=myServerAddress;Database=myDataBase;user id=myUsername;Pwd=myPassword;


    Damit ist mein ConString nicht mehr korrekt und es wird mit einer Fehlermeldung abgebrochen.

    Wenn ich "ohne" Abfrage von Daten eine Verbindung zum Testen herstelle ist das kein Problem.

    Sobald ich Daten abrufen will wird der ConString umgewandelt.

    Ich verzweifel langsam, da ich mir nicht erklären kann wie und warum das umgewandelt wird.

    Falls gefragt wird... ja, der ConString ist richtig und ist von connectionsstrings . com

    Jemand eine Idee?



    Mittwoch, 19. August 2015 07:45

Antworten

  • Hallo Michael,

    der Fehler ist das du dem MySQLCommand die Connection nicht zugewiesen hast.

     Command.Connection = s_con

    Gruß


    Jens Gerber

    Mittwoch, 19. August 2015 11:06

Alle Antworten

  • Hi VisualBasic,
    vermutlich hast Du den falschen provider ausgewählt, anstelle MySql sieht das nach SQL Server aus.

    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    Mittwoch, 19. August 2015 07:47
  • Hallo....

    das hate ich auch gedacht. Aber das ist der MySQL Connector von MySQL selber.

    Mittwoch, 19. August 2015 08:13
  • Hallo,

    die Frage wäre: Wann findet diese Umwandlung statt - ausgenommen in der Entwicklungsumgebung.

    UID und User ID sind (bei .NET/Ole Db) Synonyme, siehe Chapter 7 Connector/Net Connection String Options Reference. Hier dürfte der Treiber die Zeichenfolge auswerten und sie neu zusammenstellen, dabei jedoch User ID anstatt UID verwenden.

    Wenn Du später Probleme bekommst, dürfte das bei ODBC der Fall sein, denn die von Dir original verwendeten Schlüsselwörter stammen von dort - und ODBC unterstützt viele der Synonyme nicht - die wie User ID zu guten Teil aus Ole Db kommen.

    Gruß Elmar

    Mittwoch, 19. August 2015 08:27
    Beantworter
  • Hi VisuslBasic,
    ich habe es gerade mal mit dem MySqlDataAdapter getestet und es gibt bei mir keine Probleme. Beschreibe mal etwas genauer, was Du in Deiner Anwendung machst.

    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    Mittwoch, 19. August 2015 08:52
  • Hallo, also hier ist mein Code:

             

     Dim S_Con As New MySql.Data.MySqlClient.MySqlConnection
            Dim S_String As String
            Dim Command As New MySql.Data.MySqlClient.MySqlCommand
            Dim READER As MySql.Data.MySqlClient.MySqlDataReader

            Try
                S_String = "SELECT ort FROM v_orte ORDER BY ort ASC"
                Command.CommandText = S_String
                S_Con.ConnectionString = Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

    -->> ConnString ist korrekt!!!
                Console.WriteLine(S_Con.ConnectionString)

    -->> Hier wird der ConString umgewandelt

      S_Con.Open()

    -->> Ab hier falsch verarbeitet.

             Console.WriteLine(S_Con.State)
                READER = Command.ExecuteReader
                Console.WriteLine(READER.HasRows)
                While (READER.Read)
                    cboOrt.Items.Add(READER("ort"))
                    Console.WriteLine(READER("ort"))
                End While
                S_Con.Close()
                Console.WriteLine(S_Con.State)
            Catch ex As Exception
                MsgBox(ex.Message)
                S_Con.Close()
                Exit Sub

    Es soll lediglich eine Spalte ausgelesen werden und diese in eine ComboBox eingelesen werden.

    End try

    Mittwoch, 19. August 2015 09:49
  • Hallo Michael,

    der Connectionstring ist völlig ok so. MySQL lässt beides zu uid und user id. Der MySQLConnector gibt eben user id zurück. Der Fehler muss woanders liegen. Welche konkrete Fehlermeldung bekommst du denn ?

    Gruß


    Jens Gerber

    Mittwoch, 19. August 2015 10:51
  • Welche konkrete Fehlermeldung bekommst du denn ?

    Connection must be valid and open

    ist die Fehlermeldung.

    Ich habe bereits auch alle MySQL Dateien vom PC entfernt und nochmal neu Installiert, über den mysql-installer-web-community-5.6.26.0 sowie über nuget.

    //Edit 13:00

    Es scheint am READER = Command.ExecuteReader zu liegen.

    Wenn ich :

    READER = Command.ExecuteReader
                Console.WriteLine(READER.HasRows)
                While (READER.Read)
                   cboOrt.Items.Add(READER("ort"))
                   Console.WriteLine(READER("ort"))
                'End While

    ausklammere, dann wird die Verbindung aufgebaut und auch wieder geschlossen.

    Mittwoch, 19. August 2015 10:58
  • Hallo Michael,

    der Fehler ist das du dem MySQLCommand die Connection nicht zugewiesen hast.

     Command.Connection = s_con

    Gruß


    Jens Gerber

    Mittwoch, 19. August 2015 11:06
  • Hallo Jens,

    ich danke dir 10000000000 mal.

    Das war der Fehler :D

    Und ich Trottel habe immer wieder mit dem Problem des CoonStrings mich auseinander gesetzt.

    D A N K E

    Mittwoch, 19. August 2015 11:10