PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

C#-SqlConnection-Ausnahme:Schlüsselwort nicht unterstützt „Port“

SqlConnection ist spezifisch für SQL Server. Sie müssten NpgsqlConnection verwenden um eine Postgres-Verbindung zu verwenden, was bedeutet, dass Sie die Verweise auf die Postgres-Assemblys benötigen.

Sie beabsichtigen jedoch, in Zukunft zu einem anderen Anbieter zu wechseln. Versuchen Sie daher, die generischen Basisklassen in Ihrem Code zu verwenden, um die Auswirkungen dieses Umzugs zu minimieren. Zum Beispiel:

var connString = "Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase";
using (DbConnection conn = new NpgsqlConnection(connString))
{
    conn.Open()
    using (DbCommand command = conn.CreateCommand())
    {
        // etc
    }
}

Auf diese Weise müssen Sie beim Wechseln nur NpgsqlConnection ersetzen über Ihre Lösung hinweg mit SqlConnection . Wenn Sie DbProviderFactory (da ist ein gutes Beispiel drin) dann kannst du das, aber im Grunde sparst du dir nur dieses eine Suchen/Ersetzen, entfernst die Verweise und gibst eine neue Version des Codes frei.

Ich würde putting vorschlagen die Verbindungszeichenfolge in der Konfigurationsdatei anstelle von Code (wie in der Frage gezeigt), um zu vermeiden, dass es an mehreren Stellen vorhanden ist, und um es einfacher zu machen, es ohne Neuaufbau zu ändern.

Und natürlich müssen Sie eventuell implementierungsspezifische Details in der SQL selbst korrigieren.