Laden...

verbindungszeichenfolge und string-Variable

Erstellt von lacher vor 19 Jahren Letzter Beitrag vor 19 Jahren 2.009 Views
L
lacher Themenstarter:in
15 Beiträge seit 2004
vor 19 Jahren
verbindungszeichenfolge und string-Variable

Hallo, kann mir jemand helfen??

Ich möchte eine Verbindungszeichenfolge für eine MYSQL-Datenbank erstellen. Mache das wie bei MS beschrieben mit

public OdbcConnection verbinde(String passwort)  
  {  

    String connection="DRIVER={MySQL ODBC 3.51 Driver};"+  
			"SERVER=profex;"+  
			"DATABASE=test;"+  
			"UID=root;";  
						connection = connection +  ";PASSWORD=" + passwort;+  
                    "OPTION=3";    

usw.

bekomme aber jedesmal die Fehlermeldung, daß eine Variable vom Typ 'string' nicht mit + addiert werden darf. Wie kann ich das Problem mit der Passwort-Variable, die ich der Funktion verbinde übergebe, lösen?

Wie lautet die Lösung für den Zusammenbau der Zeichenfolge.

Danke im Voraus

Andreas

D
279 Beiträge seit 2004
vor 19 Jahren

Original von lacher

public OdbcConnection verbinde(String passwort)  
  {  

    String connection="DRIVER={MySQL ODBC 3.51 Driver};"+  
  		"SERVER=profex;"+  
  		"DATABASE=test;"+  
  		"UID=root;";  
  					connection = connection +  ";PASSWORD=" + passwort;+  
                    "OPTION=3";  

 String connection="DRIVER={MySQL ODBC 3.51 Driver};"+
				"SERVER=profex;"+
				"DATABASE=test;"+
				"UID=root;";
				onnection = connection +  ";PASSWORD=" + passwort+
                        "OPTION=3";  

Du musst darauf achten, dass zwischen einer Addition kein ";" steht

G
36 Beiträge seit 2004
vor 19 Jahren

Original von lacher
String connection="DRIVER={MySQL ODBC 3.51 Driver};"+
"SERVER=profex;"+
"DATABASE=test;"+
"UID=root;";
connection = connection + ";PASSWORD=" + passwort;+
"OPTION=3";

Die Fehlermeldung verstehe ich jetzt nicht, weil ich Strings immer mit dem +-Operator zusammenfüge...

In der Zeile connection=connection+";PASSWORD="+passwort;+
ist das Semikolon hinter passwort falsch. Deswegen wird der Compiler auf jeden Fall meckern!

Wenn Du das beseitigst, dann sieht der ConnectionString wie folgt aus:
DRIVER={MySQL ODBC 3.51 Driver};SERVER=profex;DATABASE=test;UID=root;;PASSWORD=XXXXXXOPTION=3

Vor PASSWORD ist ein Semikolon zuviel und hinter dem eigentlichem Passwort fehlt ein Semikolon. Deshlab dürfte es wohl auch Probs bei Deiner ODBC-Verbindung geben.

Gruß
Jürgen

D
279 Beiträge seit 2004
vor 19 Jahren

Dann schreibst du:

connection = connection + "PASSWORD=" + passwort+";"+

L
lacher Themenstarter:in
15 Beiträge seit 2004
vor 19 Jahren

Hallo,

danke für Eure Hilfe. Das war der Fehler.

Man soll nicht immer alles einfach abtippen, was in irgendwelchen Tutorials steht.

Gruß

Andreas

L
lacher Themenstarter:in
15 Beiträge seit 2004
vor 19 Jahren

Hey,

hab' mich zu früh gefreut.
Also die Fehlermeldung vom Compiler ist verschwunden, aber:
Egal, welches Paßwort ich mitgebe, ich kann jedesmal alle Datensätze der entsprechenden Tabelle der Datenbank Test selecten.
Habe einen Benutzer Hannes angelegt, ihm ein Passwort zugewiesen und ihm das Select-Recht erteilt.
Aber auch, wenn ich ein anderes Paßwort übergebe, sehe ich die Datensätze?

Weiß jemand Rat, oder braucht Ihr mehr Details?? Danke!!!

Andreas

L
lacher Themenstarter:in
15 Beiträge seit 2004
vor 19 Jahren

Noch ein Nachtrag:

Natürlich habe ich die UID im Quellcode auf Hannes geändert und neu compiliert.

Andreas

F
529 Beiträge seit 2003
vor 19 Jahren

string conStr = string.Format("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=profex; DATABASE=test; UID=root; connection={0}; PASSWORD={1}; OPTION=3;", connection, passwort );

Ist auf alle Fälle übersichtlicher!

Kann es sein, dass du dafür noch eine alte Connection verwendest, oder das Passwort irgentwo im Programm richtiggesetzt wird. Lass dir halt mal den Connectionstring ausgeben!

--
mfg
Franknstein

Besuchen sie das VisualC++ - Forum