PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Exception C# SqlConnection :mot clé non pris en charge "Port"

SqlConnection est spécifique à SQL Server. Vous auriez besoin d'utiliser NpgsqlConnection pour utiliser une connexion Postgres, ce qui signifie que vous aurez besoin des références aux assemblys Postgres.

Mais vous avez l'intention de passer à un autre fournisseur à l'avenir, donc pour minimiser l'impact de ce déménagement, essayez d'utiliser les classes de base génériques dans votre code. Par exemple :

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

De cette façon, lorsque vous permutez, tout ce que vous avez à faire est de remplacer NpgsqlConnection à travers votre solution avec SqlConnection . Si vous souhaitez utiliser DbProviderFactory (il y a un bon exemple là-dedans) alors vous pouvez, mais en gros, vous ne faites que vous enregistrer cette seule recherche/remplacement, en supprimant les références et en publiant une nouvelle version du code.

Je suggérerais de mettre la chaîne de connexion dans le fichier de configuration plutôt que du code (comme indiqué dans la question) pour éviter de l'avoir à plusieurs endroits et faciliter sa modification sans reconstruction.

Et bien sûr, vous devrez peut-être corriger les détails spécifiques à l'implémentation dans le SQL lui-même.