sql >> Databasteknik >  >> RDS >> Mysql

Hur ansluter jag till Mysql med C#?

Ditt omedelbara problem är förmodligen antingen en felaktig anslutningssträng eller så är databasservern inte tillgänglig. Anslutningssträngen bör vara ungefär så här

Server=localhost;Database=testdb;Uid=<username>;Pwd=<password>;

med och ersättas med dina faktiska värden.

Förutom att din kod har flera problem och du bör definitivt undersöka dem om detta är tänkt att bli produktionskod och förmodligen även om detta bara är ett leksaksprojekt för att lära dig något. Listan är i särskild ordning och kanske inte är heltäckande.

  1. Hårdkoda inte din anslutningssträng. Flytta den istället till en konfigurationsfil.
  2. Inkludera inte lösenord i vanlig text i konfigurationsfiler eller källkod. Det finns olika lösningar som Windows-autentisering, certifikat eller lösenordsskyddade av Windows Data Protection API .
  3. Släng inte bara ID-disposable instanser genom att anropa IDisposable.Dispose() . Använd istället using uttalande för att frigöra resurser även vid undantag.
  4. Skapa inte SQL-satser med strängmanipuleringstekniker. Använd istället SqlParameter för att förhindra SQL-injektionsattacker.
  5. Lagra inte oformaterade lösenord i en databas. Förvara åtminstone saltade hash av lösenorden och använd en långsam hashfunktion, inte MD5 eller en medlem av SHA-familjen.
  6. Du kan använda IDbCommand. ExecuteScalar för att hämta ett skalärt resultat och undvika att använda en dataläsare.
  7. Jämföra ett booleskt värde med true eller false är redundant och lägger bara till brus till din kod. Istället för if (reader.IsDBNull(0) ==true) du kan bara använda if (reader.IsDBNull(0)) . Detsamma gäller för if (reader.Read() !=false) vad som motsvarar if (reader.Read() ==true) och därför även if (reader.Read()) .
  8. Använda en O/R-mappare som Entity Framework är vanligtvis att föredra framför interaktion med databasen på nivå med SQL-kommandon.


  1. Hur man importerar en SQL-fil genom att använda mysqldump på Windows via kommandoraden

  2. Slå samman flera kolumner från en tabell till en kolumn från en annan tabell

  3. Vilken tidsseriedatabas är bättre:TimescaleDB vs InfluxDB

  4. Hur man undviker variabelsubstitution i Oracle SQL Developer med "trinidad &tobago"