sql >> Databasteknik >  >> RDS >> PostgreSQL

C# SqlConnection Undantag:Nyckelord stöds inte 'Port'

SqlConnection är specifik för SQL Server. Du skulle behöva använda NpgsqlConnection för att använda en Postgres-anslutning, vilket innebär att du behöver referenserna till Postgres-sammansättningarna.

Men du tänker flytta till en annan leverantör i framtiden, så för att minimera effekten av den flytten, försök att använda de generiska basklasserna i din kod. Till exempel:

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

På det här sättet, när du byter över, är allt du behöver göra att ersätta NpgsqlConnection över din lösning med SqlConnection . Om du vill använda DbProviderFactory (det finns ett bra exempel där) då kan du, men i princip sparar du bara den här enstaka sökningen/ersättet, tar bort referenserna och släpper en ny version av koden.

Jag skulle föreslå att lägger anslutningssträngen i konfigurationsfilen snarare än kod (som visas i frågan) för att undvika att ha den på flera ställen och göra det lättare att ändra utan en ombyggnad.

Och naturligtvis kan du behöva fixa eventuella implementeringsspecifika detaljer i själva SQL.



  1. Hur man tar bort pivottabellen i MySQL

  2. Lade till mysql jar till lib men vänder sig fortfarande mot klass. Finns inte undantag på lokal distribution till Tomcat som arbetar genom intelliJ?

  3. Behöver återställa värdet på sekvensen i Oracle

  4. Beräknar värdeskillnader mellan två poster i Eloquent