verwendetes Datenbanksystem: mysql
Hi,
wollte ne Verbindung aus einem Windows-Progi mit C#.net heraus zu einem MYSQL Server herstellen.
Habe bisher 4 verschiedene Connection Strings ausprobiert, hat nichts geklappt.
Hier mein bisheriger Code:
private void frm_main_Load(object sender, EventArgs e)
{
OdbcConnection con = new OdbcConnection();
con.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};Server=webserver;Port=3306;Database=backoffice;User=root;Option=3;";
con.Open();
}
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
Hi,
lade Dir doch erstmal von www.mysql.de den Connector/Net 5.1 runter. Das ist ein nativer MySql Treiber und um einiges besser als ODBC. Ausserdem sind Beispiele dabei, da siehst du dann wies gemacht wird.
Grüße
Mfg, Christian
jap, also ich kann dir auch nur den connecter für .net empfehlen,
den verweis dem project hinzufügen.
also an konfortabilität gibt es nichts besseres bzgl. mysql und c#.
"Arbeit ist die altmodische Form der Vermögensbildung in Arbeitnehmerhand."
Wolfram Weidner (*1925), dt. Journalist
Hi!
Ich verwende für den Zugriff auf MySQL-Server den
MySQL-Connector anstelle von ODBC.
Connector:
http://dev.mysql.com/downloads/connector/net/
Doku + Beispiele:
http://dev.mysql.com/doc/refman/5.0/en/connector-net.html
lg
Da wirste auf jeden Fall fündig 😉
MySQL Set your custom
connection string values »
This is a compiled connection strings reference list on how to connect to MySQL.
[EDIT]
MyODBC
MyODBC 2.50 Local database
Driver={mySQL};Server=localhost;Option=16834;Database=myDataBase;
COPY TO CLIPBOARD
MyODBC 2.50 Remote database
Driver={mySQL};Server=myServerAddress;Port=3306;Option=131072;Stmt=; Database=myDataBase;Uid=myUsername;Pwd=myPassword;
COPY TO CLIPBOARD
MyODBC 3.51 Local database
Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=myDataBase; User=myUsername;Password=myPassword;Option=3;
COPY TO CLIPBOARD
MyODBC 3.51 Remote database
Driver={MySQL ODBC 3.51 Driver};Server=data.domain.com;Port=3306;Database=myDataBase;User=myUsername; Password=myPassword;Option=3;
UVM...
[/EDIT]
hab jetzt:
MySqlConnection con = new MySqlConnection();
con.ConnectionString = "Persist Security Info=False;database=backoffice;server=192.168.2.30;user id=root;";
con.Open();
wieso klappt es nicht?
es kommt immer: "Access Denied "root"@"localhost""
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
Hallo,
ich glaube nicht, dass dein root ohne Passwort auskommt, oder etwa doch?
lg
lg Lion
Doch =) Ist nur n Testserver
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
Hallo?
Woran liegts den jetzt?
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
Hallo,
wir geben dir gerne Ratschläge, aber da hilft dir ds Drängen auch nicht.. sollte man mit 200 Beiträgen wissen 😉
Anosnten woran es liegt ist doch klar:
es kommt immer: "Access Denied "root"@"localhost""
da kann doch nur etwas mit deinem Benutzer bzw setting dafür falsch sein.
Eventuell mal Password mitübergeben, aber leer lassen, testen ob root wirklich kein Passwort hat (event ein leerzeichen 😉 )
Und auf den gelinkten Seiten gibts auch Beispiele:
http://dev.mysql.com/doc/refman/5.0/en/connector-net-examples-mysqlconnection.html
Wenn du diese nur auf deinen DB-Server anpasst, müßte es doch klappen.
lg
lg Lion
Hab ich doch:
Siehe oben: Eingegeben ist "Webserver", also der Hostname des Servers und er versucht auf meinen Rechner zu connecten?!?!?!? Selbst mit IP gehts nicht.
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
ODBC ? Gibt's das denn noch ?
Im Ernst : ODBC ist langsam, umständlich und unflexibel.
Stelle die Verbindung zum mySQL-Server IMMER zuerst mit dem MySQL Query Browser her !!
Wichtig !
Wenn das klappt dann installiere den .NET Connector von MySQL und probiere das damit.
Wenn der MySQL Server auf einem anderen Rechner ist musst Du die Rechte noch freigeben, z.B. für Linux :
Benutzer anlegen :
/var/lib/mysql/mysql
-> mysql> (MySQL Prompt erscheint)
GRANT ALL PRIVILEGES ON . TO 'User3'@'localhost' IDENTIFIED BY 'user3' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON . TO 'user3'@'%' IDENTIFIED BY 'user3' WITH GRANT OPTION;
QUIT
Zugriff über das Netzwerk erlauben :
Datei /var/lib/mysql/my.conf editieren :
remote ... = 127.0.0.1
ändern in
#remote ... = 127.0.0.1
Ein paar Tipps sind noch hier : http://www.seven-c.de/files/datenbankenhowto.htm
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Danke für die Hilfe, ist nur leider nutzlos =)
Datenbank kann ich per PHP von aussen ansprechen, ausserdem ist es ein XAMPP Windows System.
Nur leider iwie per C#.net nicht
und unmgestiegen auf den Connector bin ich auch schon =)
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
Hallo,
dann bitte ich dich, wenn man dir Links postet, sie dir auch eventuell genauer anzuschauen und auch derren Möglichkeit zu versuchen:
myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass"
Was mir gleich ins Auge sticht ist, dass hier z.B.: kein server tag gibt.. wie bzw. ob das eine Auswirkung hat, weiß ich nicht, Wenn Root kein Passwort hat, würde ich eventuell trotzdem "Password=;" anhängen.
lg
€dit: Rechtschreibkorrektur 😉
lg Lion
Also Fehler gefunden.
Der User "root" darf nur local zugreifen, da php immer auf dem Server ausgeführt wird, ist das kein Problem per php root zu benutzen. In DotNet schon. 2. User erstellt, fertig.
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
Kann mir einer sagen wie ich die Zeilenanzahl rausbekomme?
MySqlCommand com = new MySqlCommand();
com.CommandText = "Select * from tbl_message where `To` = '1006' and `Read` = '0'";
com.Connection = con;
MySqlDataReader read = com.ExecuteReader();
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
Hab nichts dergleichen gefunden
Das Leben is :ugly:
Verdammt, mach das Fenster zu, wer hat den Gamma-Wert so hoch gestellt?
Wenn ich mich nicht irre ist "RecordsAffected" das was du suchst, und wie gesagt, in der Doku auffindbar, aber nur bei geänderten Werten.
Ansonsten musst du, soviel ich weiß, eine Count Abfrage davor machen
lg
Edit: Paar Fehler ausgebessert
lg Lion
Kovu : Wenn Du das zuerst mit dem MySQL Query browser probiert hättest wärst Du schneller zum Ergebnis gekommen.
Das hat schon seinen Grund warum ich den Leuten sage IMMER zuerst mit dem SQL Management Studio oder mit dem MySQL Query Browser eine Verbindung aufbauen.
Dann sieht man sofort ob es am eigenen C#-Programm oder an den Berechtigungen liegt.
Zeilenzahl :
string sqlstr = "Select count(*) from tbl_message where `To` = '1006' and `Read` = '0'";
...
int anzahl = (int)(long)dr[0];
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3