sql >> Database >  >> RDS >> Mysql

Hoe verbinding maken met Mysql via C#?

Uw directe probleem is waarschijnlijk een onjuiste verbindingsreeks of de databaseserver is niet beschikbaar. De verbindingsreeks zou er ongeveer zo uit moeten zien

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

met <username> en <password> vervangen door uw werkelijke waarden.

Daarnaast heeft je code verschillende problemen en je moet er zeker naar kijken als dit bedoeld is om productiecode te worden en waarschijnlijk zelfs als dit slechts een speelgoedproject is om iets te leren. De lijst is in een bepaalde volgorde en is mogelijk niet volledig.

  1. Geef uw verbindingsreeks geen harde code. Verplaats het in plaats daarvan naar een configuratiebestand.
  2. Neem geen wachtwoorden in platte tekst op in configuratiebestanden of broncode. Er zijn verschillende oplossingen zoals windows-authenticatie, certificaten of wachtwoorden beveiligd door de Windows Data Protection API .
  3. Gooi IDisposable niet zomaar weg instanties door IDisposable.Dispose() . aan te roepen . Gebruik in plaats daarvan de using verklaring om middelen vrij te geven, zelfs in het geval van uitzonderingen.
  4. Bouw geen SQL-instructies op met behulp van tekenreeksmanipulatietechnieken. Gebruik in plaats daarvan SqlParameter om SQL-injectie-aanvallen te voorkomen.
  5. Sla wachtwoorden in platte tekst niet op in een database. Sla in plaats daarvan op zijn minst gezouten hashes van de wachtwoorden op en gebruik een langzame hash-functie, niet MD5 of een lid van de SHA-familie.
  6. Je kunt IDbCommand.ExecuteScalar om een ​​scalair resultaat op te halen en het gebruik van een gegevenslezer te vermijden.
  7. Een booleaanse waarde vergelijken met true of false is overbodig en voegt alleen ruis toe aan uw code. In plaats van if (reader.IsDBNull(0) == true) je kunt gewoon if (reader.IsDBNull(0)) . gebruiken . Hetzelfde geldt voor if (reader.Read() != false) wat is gelijk aan if (reader.Read() == true) en dus ook if (reader.Read()) .
  8. Een O/R-mapper gebruiken zoals het Entity Framework heeft meestal de voorkeur boven interactie met de database op het niveau van SQL-commando's.


  1. Waar waarde in kolom met door komma's gescheiden waarden

  2. Hoe vind ik de MySQL my.cnf-locatie

  3. ComboBox.ValueMember en DisplayMember

  4. Verzamelmethode:LIMIT-functie in Oracle Database