Benutzer mit den meisten Antworten
VisualBasic 2015 - Connection String

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 . comJemand eine Idee?
Antworten
-
Hallo Michael,
der Fehler ist das du dem MySQLCommand die Connection nicht zugewiesen hast.
Command.Connection = s_con
Gruß
Jens Gerber
- Als Antwort markiert Michael Brand Quaddox Mittwoch, 19. August 2015 11:10
Alle Antworten
-
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
-
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 -
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 SubEs soll lediglich eine Spalte ausgelesen werden und diese in eine ComboBox eingelesen werden.
End try
- Bearbeitet Michael Brand Quaddox Mittwoch, 19. August 2015 10:26
- Als Antwort markiert Michael Brand Quaddox Mittwoch, 19. August 2015 10:26
- Tag als Antwort aufgehoben Michael Brand Quaddox Mittwoch, 19. August 2015 10:26
-
-
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 Whileausklammere, dann wird die Verbindung aufgebaut und auch wieder geschlossen.
- Bearbeitet Michael Brand Quaddox Mittwoch, 19. August 2015 11:02
-
Hallo Michael,
der Fehler ist das du dem MySQLCommand die Connection nicht zugewiesen hast.
Command.Connection = s_con
Gruß
Jens Gerber
- Als Antwort markiert Michael Brand Quaddox Mittwoch, 19. August 2015 11:10