sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo conectarse a Mysql usando C#?

Su problema inmediato es probablemente una cadena de conexión incorrecta o el servidor de la base de datos no está disponible. La cadena de conexión debería ser algo como esto

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

con <username> y <password> reemplazado con sus valores reales.

Además de eso, su código tiene varios problemas y definitivamente debería analizarlos si está destinado a convertirse en código de producción y probablemente incluso si se trata solo de un proyecto de juguete para aprender algo. La lista está en un orden particular y puede no ser exhaustiva.

  1. No codifique de forma rígida su cadena de conexión. En su lugar, muévalo a un archivo de configuración.
  2. No incluya contraseñas de texto sin formato en los archivos de configuración ni en el código fuente. Hay varias soluciones como autenticación de Windows, certificados o contraseñas protegidas por la API de protección de datos de Windows .
  3. No se limite a desechar IDisposable instancias llamando a IDisposable.Dispose() . En su lugar, use using declaración para liberar recursos incluso en el caso de excepciones.
  4. No cree sentencias SQL utilizando técnicas de manipulación de cadenas. En su lugar, use SqlParameter para prevenir ataques de inyección SQL.
  5. No almacene contraseñas de texto sin formato en una base de datos. En su lugar, al menos almacene hashes salteados de las contraseñas y use una función hash lenta, no MD5 o un miembro de la Familia SHA.
  6. Puede usar IDbCommand.ExecuteScalar para recuperar un resultado escalar y evitar el uso de un lector de datos.
  7. Comparar un valor booleano con true o false es redundante y solo agrega ruido a su código. En lugar de if (reader.IsDBNull(0) == true) simplemente puede usar if (reader.IsDBNull(0)) . Lo mismo vale para if (reader.Read() != false) lo que es equivalente a if (reader.Read() == true) y por lo tanto también if (reader.Read()) .
  8. Utilizar un mapeador O/R como Entity Framework generalmente se prefiere interactuar con la base de datos en el nivel de los comandos SQL.