[Resolvido][Dúvida] Acessando dados MySQL com C#

Olá,

Eu tenho um programa simples escrito em C# e um componente “DataGridView1” no formulário. Não tenho nenhum botão ainda e a intenção é apenas carregar os dados do MySQL no C# dentro do “DataGridView1”.

Eu tenho algumas dúvidas também. Achei esse código na internet mas não explica muito…

  • Como eu faço a ligação do “DataGridView1” que está no “form1” pra mostrar os dados via código da tabela “Clientes”?

Segue o código:
https://pastebin.com/Nn1y1cZn

  • Outra dúvida que tenho é se esta “bom/correto” o local que eu fecho a conexão e o jeito “simples” e prático que utilizei pra fechar a conexão. Está correto?

Obrigado por qualquer ajuda.

Olá,

Alterei o código e a segunda dúvida minha sobre fechar a conexão está respondida. Porém ainda não consegui visualizar os dados no “datagridview1”.

Eu alterei o código tbm. Segui mais 2 códigos que encontrei na internet e alterei meu código. Porém ainda não consigo visualizar os dados.

E estou recebendo um mensagem de erro, que espero não ser o problema em questão de não carregar os dados no datagridview1.

Imagem do “erro” quando executo o programa:

  • Segue o Código:

      using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Linq;
      using System.Text;
      using System.Threading.Tasks;
      using System.Windows.Forms;
      using MySql.Data.MySqlClient;
    
      namespace teste
      {
          public partial class Form1 : Form
          {
              //private System.Windows.Forms.DataGrid datagrid;
              private MySqlConnection conexao;
              private MySqlDataAdapter adapter;
              private DataSet dataset;
    
              public Form1()
              {
                  InitializeComponent();
    
                  dataset = new DataSet();
    
                  conexao = new MySqlConnection("Persist Security Info=False;" +
                      "                          server=localhost;" +
                      "                          database=teste;" +
                      "                          uid=root;" +
                      "                          pwd=pass");
    
                  try
                  {
                      conexao.Open();
    
                      // Verifica se a conexao esta aberta
                      if (conexao.State == ConnectionState.Open)
                      {
                          // Cria um adapter para acessar a tabela Clientes
                          adapter = new MySqlDataAdapter("SELECT * FROM clientes", conexao);
                          // Preenche o dataset via adapter
                          adapter.Fill(dataset, "clientes");
                          // Atribui o resultado a propriedade DataSource do DataGrid
                          //datagrid.DataSource = dataset;
                          //datagrid.DataMember = "Clientes";
    
                          dataGridView1.DataSource = dataset;//.Tables[0].DefaultView;
                          dataGridView1.DataMember = "clientes";
                      }
                  }
                  catch(Exception e)
                  {
                      MessageBox.Show(e.Message.ToString());
                  }
                  finally
                  {
                      if (conexao.State == ConnectionState.Open)
                      {
                          conexao.Close();
                      }
                  }            
              }
          }}
    

Obrigado por qualquer ajuda.

=== EDIT ===

Resolvido.

Minha string de conexão foi alterada para essa forma(parece que é um código a mais que precisa adicionar na string de conexão do MySQL):

conexao = new MySqlConnection("Persist Security Info=False;" +
                "                          server=localhost;" +
                "                          database=teste;" +
                "                          uid=root;" +
                "                          pwd=;" +
                "                          SslMode=none;");

Obrigado.