Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để kết nối với Mysql bằng C #?

Vấn đề ngay lập tức của bạn có thể là một chuỗi kết nối không chính xác hoặc máy chủ cơ sở dữ liệu không khả dụng. Chuỗi kết nối phải giống như thế này

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

với <username><password> được thay thế bằng các giá trị thực tế của bạn.

Bên cạnh đó, mã của bạn có một số vấn đề và bạn chắc chắn nên xem xét chúng nếu điều này được dự định trở thành mã sản xuất và có thể ngay cả khi đây chỉ là một dự án đồ chơi để học hỏi điều gì đó. Danh sách theo thứ tự cụ thể và có thể không đầy đủ.

  1. Đừng mã hóa chuỗi kết nối của bạn. Thay vào đó, hãy chuyển nó vào tệp cấu hình.
  2. Không bao gồm mật khẩu văn bản thuần túy trong tệp cấu hình hoặc mã nguồn. Có nhiều giải pháp khác nhau như xác thực windows, chứng chỉ hoặc mật khẩu được bảo vệ bởi API Bảo vệ Dữ liệu của Windows .
  3. Không chỉ vứt bỏ IDisposable phiên bản bằng cách gọi IDisposable.Dispose() . Thay vào đó, hãy sử dụng using tuyên bố giải phóng tài nguyên ngay cả trong trường hợp ngoại lệ.
  4. Không xây dựng các câu lệnh SQL bằng kỹ thuật thao tác chuỗi. Thay vào đó, hãy sử dụng SqlParameter để ngăn chặn các cuộc tấn công đưa vào SQL.
  5. Không lưu trữ mật khẩu văn bản thuần túy trong cơ sở dữ liệu. Thay vào đó, ít nhất hãy lưu trữ các hàm băm mặn của mật khẩu và sử dụng một hàm băm chậm, không phải MD5 hoặc một thành viên của Gia đình SHA.
  6. Bạn có thể sử dụng IDbCommand.ExecuteScalar để truy xuất kết quả vô hướng và tránh sử dụng trình đọc dữ liệu.
  7. So sánh giá trị boolean với true hoặc false là dư thừa và chỉ thêm nhiễu cho mã của bạn. Thay vì if (reader.IsDBNull(0) == true) bạn chỉ có thể sử dụng if (reader.IsDBNull(0)) . Điều tương tự đối với if (reader.Read() != false) tương đương với if (reader.Read() == true) và do đó cũng có if (reader.Read()) .
  8. Sử dụng trình liên kết O / R như Khung thực thể thường được ưu tiên hơn là tương tác với cơ sở dữ liệu ở cấp độ các lệnh 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. Khi nào sử dụng dấu ngoặc kép, dấu ngoặc kép và dấu ngoặc kép trong MySQL

  2. Có lỗi tương đương cho lỗi @@ của SQL Server trong MySQL không

  3. Kiểm tra thời gian phản hồi trên thư đã gửi - có thể chỉ sử dụng SQL?

  4. Cách sử dụng các vai trò đã thay đổi trong MySQL 8.0

  5. Làm thế nào để thiết kế một cơ sở dữ liệu phim?