Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Verbindung zu Mysql Datenbank aufbauen


MediaHDCenter - Sa 07.04.12 12:47
Titel: Verbindung zu Mysql Datenbank aufbauen
Hi,

Ich versuche jetzt schon seit ewigkeiten aus meinem Programm auf eine Datenbank im Internet zuzugreifen. Ich habe bei t-online ein wenig webspace und habe mir dort eine kleine Mysql mit phpMyAdmin angelegt.


Jetzt kommt bei mir immer eine Fehlermeldung:

"Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server. Der Server wurde nicht gefunden, oder auf ihn kann nicht zugegriffen werden. Überprüfen Sie, ob der Instanzname richtig ist und ob SQL Server Remoteverbindungen zulässt. (provider: Named Pipes Provider, error: 40 - Verbindung mit SQL Server konnte nicht geöffnet werden)"


Ich schätze mal das ich den ConnectionString ein wenig falsch habe. Ich weiß bloss nicht was.

Quelltext
1:
2:
3:
4:
Datasource = mysql5.service
Initial Catalog = HT[...]YT (wie müsste dieser Teil denn aussehen?)
Passwort = ... (das weiß ich sicher)
UserID = (was sollte hier hin kommen?)


Schon Danke im Voraus

MfG
MediaHDCenter

Moderiert von user profile iconTh69: Code-Tags hinzugefügt


Th69 - Sa 07.04.12 13:04

Hallo MediaHDCenter :welcome:

du scheinst den falschen Datenbank-Provider zu benutzen (MS SQL Server anstatt MySQL), s.a. Erste Anbindung an MySQL [http://www.c-sharp-forum.de/viewtopic.php?p=641368#641368]

Du mußt also als erstes den mySQL DB-Provider herunterladen und benutzen und dann den ConnectionString entsprechend anpassen.


Yogu - Sa 07.04.12 16:37

Hallo MediaHDCenter,

auf Datenbanken von Webhostern kann meistens nicht von außen zugegriffen werden, sondern nur von Webanwendungen, die auf dem jeweiligen Server läuft (z.B. PHP). Um herauszufinden, ob das bei dir der Fall ist, könntest du die Zugriffsdaten in ein PHP-Skript eintragen und die Verbindung von dort aufbauen


Quelltext
1:
mysql_connect('hostname', 'user', 'password');                    

Wenn das schon nicht klappt, kannst du die Datenbank nicht so einfach verwenden.


MediaHDCenter - So 08.04.12 21:06

Danke für die Antworten. Ich kann leider von außen nicht auf die Datenbank zugreifen.


MediaHDCenter - Mo 09.04.12 18:49

Ich hab doch nochmal eine Frage dazu.

Weiß jemand ob eine Datenbank bei 1und1 von C# Programmen verwendbar ist?

Oder woher bekommt man sonst eine Datenbank im Internet, auf die man von jedem PC zugreifen kann.


Yogu - Mo 09.04.12 20:05

user profile iconMediaHDCenter hat folgendes geschrieben Zum zitierten Posting springen:
Weiß jemand ob eine Datenbank bei 1und1 von C# Programmen verwendbar ist?

Die normalen MySQL-Datenbanken von Webhosting-Paketen funktionieren da auch nicht, die Hostnamen können nicht einmal aufgelöst werden.

user profile iconMediaHDCenter hat folgendes geschrieben Zum zitierten Posting springen:
Oder woher bekommt man sonst eine Datenbank im Internet, auf die man von jedem PC zugreifen kann.

Such mal nach Angeboten ohne Webspace, sondern nur mit einer Datenbank; gibt's auch kostenlos: Suche bei Google FREE MYSQL.


MediaHDCenter - Mo 09.04.12 22:14

Weiß jemand ob man das kostenlose Angebot von Xeround verwenden kann?


Yogu - Mo 09.04.12 23:16

user profile iconMediaHDCenter hat folgendes geschrieben Zum zitierten Posting springen:
Weiß jemand ob man das kostenlose Angebot von Xeround verwenden kann?

Soweit ich das gerade sehe, müsste das gehen. Wichtig ist, dass du dann den External DNS hostname verwendest (Achtung, enthält auch einen Port, der vom Standard-Port abweicht; der muss möglicherweise extra angegeben werden).


MediaHDCenter - Mo 09.04.12 23:53

Ich habe das jetzt mal ausprobiert.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=tcp:instance10797.db.xeround.com, 7347;" +
                "Initial Catalog=SpielDB" +
                "User ID=mediahdcenter;" +
                "Password=[passwort]";
con.Open();
con.Close();


Jetzt bekomme ich bei con.Open() folgende Fehlermeldung:

Zitat:
ArgumentOutOfRangeException: Nicht negative Zahl erforderlich. Parametername: count


Ich kann mir die irgendwie nicht erklären.


MediaHDCenter - Di 10.04.12 00:02

mir fällt grad auf, vielleicht sollte ich die MySql.Data.MySqlClient.MySqlConnection Klasse nehmen. Ich glaube dann geht es.


MediaHDCenter - Di 10.04.12 00:28

Super, jetzt funktioniert es. Ich danke euch allen für eure Hilfe.

Hier nochmal der entgültige Code zum Verbinden für alle die das selbe Problem hatten wie ich.


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
MySqlConnection con = new MySqlConnection();
con.ConnectionString = "Server=instance10797.db.xeround.com;" + 
    "Port=7347;" +
    "Database=spieldb;" + 
    "Uid=mediahdcenter;" +
    "Pwd=[passwort];";

con.Open();
con.Close();


Mit freundlichen Grüßen
MediaHDCenter