sql >> Databáze >  >> RDS >> Mysql

Jak se připojit k Mysql pomocí C#?

Váš bezprostřední problém je pravděpodobně buď nesprávný připojovací řetězec, nebo databázový server není dostupný. Připojovací řetězec by měl být něco takového

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

s <username> a <password> nahrazeny vašimi skutečnými hodnotami.

Kromě toho má váš kód několik problémů a měli byste se na ně určitě podívat, pokud se má stát produkčním kódem, a pravděpodobně i když je to jen hračka, abyste se něco naučili. Seznam je v určitém pořadí a nemusí být úplný.

  1. Nekódujte svůj připojovací řetězec napevno. Místo toho přesuňte do konfiguračního souboru.
  2. Do konfiguračních souborů nebo zdrojového kódu nezahrnujte hesla ve formátu prostého textu. Existují různá řešení, jako je ověření systému Windows, certifikáty nebo chráněno hesly pomocí Windows Data Protection API .
  3. Nezlikvidujte pouze IDisposable instance voláním IDisposable.Dispose() . Místo toho použijte using prohlášení o uvolnění zdrojů i v případě výjimek.
  4. Nevytvářejte příkazy SQL pomocí technik manipulace s řetězci. Místo toho použijte SqlParameter abyste zabránili útokům SQL injection.
  5. Neuchovávejte hesla ve formátu prostého textu v databázi. Místo toho alespoň ukládejte osolené hash hesel a použijte pomalou hashovací funkci, ne MD5 nebo člen Rodina SHA.
  6. Můžete použít IDbCommand.ExecuteScalar načíst skalární výsledek a vyhnout se použití čtečky dat.
  7. Porovnání booleovské hodnoty s hodnotou true nebo false je nadbytečný a pouze přidává šum do vašeho kódu. Místo if (reader.IsDBNull(0) == true) stačí použít if (reader.IsDBNull(0)) . Totéž platí pro if (reader.Read() != false) co je ekvivalentní if (reader.Read() == true) a tedy také if (reader.Read()) .
  8. Použití O/R mapovače, jako je Entity Framework je obvykle preferován před interakcí s databází na úrovni SQL příkazů.


  1. Rozdělte více příkazů SQL na jednotlivé příkazy SQL

  2. Co je databáze, proč databáze?

  3. Jak naplnit tabulky zón v databázi mysql v ubuntu pomocí xampp

  4. Měly by být odhaleny primární klíče tabulek MySQL?