Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak połączyć się z Mysql za pomocą C#?

Twoim bezpośrednim problemem jest prawdopodobnie nieprawidłowy ciąg połączenia lub serwer bazy danych jest niedostępny. Ciąg połączenia powinien wyglądać mniej więcej tak

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

z i zastąpione rzeczywistymi wartościami.

Poza tym twój kod ma kilka problemów i zdecydowanie powinieneś się im przyjrzeć, jeśli ma to stać się kodem produkcyjnym i prawdopodobnie nawet jeśli jest to tylko zabawkowy projekt, aby się czegoś nauczyć. Lista jest uporządkowana i może nie być wyczerpująca.

  1. Nie koduj na stałe ciągu połączenia. Zamiast tego przenieś go do pliku konfiguracyjnego.
  2. Nie umieszczaj haseł w postaci zwykłego tekstu w plikach konfiguracyjnych ani w kodzie źródłowym. Istnieją różne rozwiązania, takie jak uwierzytelnianie systemu Windows, certyfikaty lub chronione hasłami przez Windows Data Protection API .
  3. Nie wyrzucaj IDisposable instancje, wywołując IDisposable.Dispose() . Zamiast tego użyj using oświadczenie o zwolnieniu zasobów nawet w przypadku wyjątków.
  4. Nie twórz instrukcji SQL przy użyciu technik manipulacji ciągami. Zamiast tego użyj SqlParameter aby zapobiec atakom typu SQL injection.
  5. Nie przechowuj haseł w postaci zwykłego tekstu w bazie danych. Zamiast tego przynajmniej przechowuj solone skróty haseł i używaj powolnej funkcji skrótu, a nie MD5 lub członka Rodzina SHA.
  6. Możesz użyć IDbCommand. ExecuteScalar aby pobrać wynik skalarny i uniknąć używania czytnika danych.
  7. Porównywanie wartości logicznej z true lub false jest zbędny i po prostu dodaje szum do twojego kodu. Zamiast if (reader.IsDBNull(0) ==true) możesz po prostu użyć if (reader.IsDBNull(0)) . To samo dotyczy if (reader.Read() !=false) co jest równoważne z if (reader.Read() ==true) a zatem także if (reader.Read()) .
  8. Korzystanie z mapera O/R, takiego jak Entity Framework jest zwykle preferowany w stosunku do interakcji z bazą danych na poziomie poleceń SQL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP, MySQL, PDO — uzyskać wynik z zapytania UPDATE?

  2. MySQL COUNT z LIMIT

  3. Instrukcja MySQL PREPARE w procedurach składowanych

  4. Problemy z tworzeniem zapytania MySQL w Symfony zawierającej JOIN i RAND()

  5. MySQL:Jak zbiorczo SELECT wierszy z wieloma parami w klauzuli WHERE