Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como se conectar ao Mysql usando C #?


Seu problema imediato é provavelmente uma cadeia de conexão incorreta ou o servidor de banco de dados não está disponível. A string de conexão deve ser algo assim
Server=localhost;Database=testdb;Uid=<username>;Pwd=<password>;

com <username> e <password> substituído por seus valores reais.

Além disso, seu código tem vários problemas e você definitivamente deve analisá-los se isso for destinado a se tornar código de produção e provavelmente até mesmo se for apenas um projeto de brinquedo para aprender algo. A lista está em ordem particular e pode não ser abrangente.
  1. Não codifique sua string de conexão. Em vez disso, mova-o para um arquivo de configuração.
  2. Não inclua senhas de texto simples em arquivos de configuração ou código-fonte. Existem várias soluções como autenticação do Windows, certificados ou senhas protegidas pela API de proteção de dados do Windows .
  3. Não descarte apenas IDisposable instâncias chamando IDisposable.Dispose() . Em vez disso, use using declaração para liberar recursos mesmo no caso de exceções.
  4. Não crie instruções SQL usando técnicas de manipulação de strings. Em vez disso, use SqlParameter para evitar ataques de injeção de SQL.
  5. Não armazene senhas de texto simples em um banco de dados. Em vez disso, pelo menos, armazene hashes salgados das senhas e use uma função de hash lenta, não MD5 ou um membro do Família SHA.
  6. Você pode usar IDbCommand.ExecuteScalar para recuperar um resultado escalar e evitar o uso de um leitor de dados.
  7. Comparando um valor booleano com true ou false é redundante e apenas adiciona ruído ao seu código. Em vez de if (reader.IsDBNull(0) == true) você pode simplesmente usar if (reader.IsDBNull(0)) . O mesmo vale para if (reader.Read() != false) o que é equivalente a if (reader.Read() == true) e, portanto, também if (reader.Read()) .
  8. Usando um mapeador O/R como o Entity Framework geralmente é preferível a interagir com o banco de dados no nível de comandos SQL.