C# Anwendung mit MySQL Datenbank verbinden?
Moin, ich möchte von einer MySQL Daten zu einer C# Anwendung importieren, aber der ConnectionString scheint nicht richtig zu sein. Ich nutze für die Datenbank Verwaltung HeidiSQL, falls das wichtig ist.
Hab es schon mit mehreren connectionStrings probiert, aber keiner hat funktioniert.
Mein Code:
using System.Data.SqlClient;
namespace DB_Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
string connectionString1 = "Server=localhost;Database=test-db;Integrated Security=True;";
string connectionString2 = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=test-db;Integrated Security=True;";
string connectionString = @"Data Source=localhost;Initial Catalog=db-test;User id=root;Password=root;";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
}
}
}
Infos zu der Datenbank:
Hier ist noch die Fehlermeldung, die ich kriege:
System.Data.SqlClient.SqlException: "A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)"
Win32Exception: Das System kann die angegebene Datei nicht finden.
2 Antworten
Nur so als Info: In .NET gibt es EF (Entity Framework). Das ist ein ORM. ORMs werden heutzutage viel benutzt, statt die Daten per string immer abzufragen. Das kann ich dir nur empfehlen.
Dein Fehler fragt dich bereits, ob dein Server erreichbar ist. Hast du das geprüft? Eventuell läuft der in einer Virtuellen Umgebung oder auf einen anderen Gerät oder so und die Firewall lässt ihn nicht durch?
Edit:
Das habe ich eben nicht gesehen. Die ersten strings werden nicht benutzt, nur der dritte.
string connectionString = @"Data Source=localhost;Initial Catalog=db-test;User id=root;Password=root;";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
Deshalb auch nochmal hier: Ist Data Source richtig? Bist du sicher, dass du da nicht Server brauchst? Heißt es wirklich Initial Catalog und nicht Database? Statt User Id, hast du mal nur User probiert?
Laut Screenshot heißt deine Datenbank test-db, nicht db-test.
Ich habe gerade noch einmal nachgeschaut: Der SqlClient unterstützt MySQL überhaupt nicht. Verwende stattdessen das MySqlConnector-Package.
using var connection = new MySqlConnection(@"Server=localhost;Database=test-db;Uid=root;Pwd=YOUR-PASSWORD;");
Hab ich umgeändert, aber leider funktioniert es immer noch nicht.