none
Carregar Grid no mysql RRS feed

  • Pergunta

  • Olá , estou a mudar o banco de dados da aplicação , já consegui usar Mysql.Data

    mais agora preciso , acertar os commandos conforme System.Data.SqlClient 

    Assim acho que daria para aproveitar mais o que já tenho feito 

    o codigo abaixo , faço com SQLSERVER , porem , o Erro da de Pipes , que não achou a base SQL SERVER , acho que faz parte da coleção System.Data , mais , mesmo minha duvida é 

    Como converter esses comandos , para acessar no Mysql.Data.MySqlClient

    private List<Tipos> CarregarGridView()
            {

                List<Tipos> lstRetorno = new List<Tipos>();
                string strConnectionString = ConfigurationManager.ConnectionStrings["TesteConnectionString"].ConnectionString;
                string strInstrucaoSelect = "SELECT CONT_COD , CONT_EMPR , CONT_DESC FROM CADCONTACONT";

               using (SqlConnection objConexao = new SqlConnection(strConnectionString))
                {
                    using (SqlCommand objCommand = new SqlCommand(strInstrucaoSelect, objConexao))
                    {
                        try
                       {
                           objConexao.Open();
                           SqlDataReader objDataReader = objCommand.ExecuteReader();

                           if (objDataReader.HasRows)
                           {
                              while (objDataReader.Read())
                                {
                                    Tipos objPropriedades = new Tipos();
                                    objPropriedades.CONT_COD = Convert.ToInt32(objDataReader["CONT_COD"].ToString());
                                    objPropriedades.CONT_EMPR = Convert.ToInt32(objDataReader["CONT_EMPR"].ToString());
                                   objPropriedades.CONT_DESC = objDataReader["CONT_DESC"].ToString();
                                   lstRetorno.Add(objPropriedades);
                               }
                          }
                        }
                        catch (Exception ex)
                       {
                            throw new Exception(ex.Message);
                       }
                        finally
                        {
                            objConexao.Close();
                        }
                   }
                }

                return lstRetorno;
           }

    quinta-feira, 16 de julho de 2015 22:15

Respostas

  • Marcelo, no seu código você fechou a conexão com "objConexao.Close()".

    Antes disso você precisa fechar também o DataReader. Teria que, no finally, colocar "objDataReader.Close();" então fechar a conexão.

    No banco de dados, um DataReader NÃO PODE SER DEIXADO ABERTO se você não for mais usá-lo. Mesmo que você feche a conexão, o "ponteiro" gerado no banco de dados pelo datareader continua aberto. O método "Close()" do DataReader encerra o ponteiro. Isso é vital, senão o ponteiro só será fechado quando o banco de dados entender que a conexão está "idle" por muito tempo, então todos os recursos devem ser desalocados.

    O mesmo erro daria, por exemplo, se você deixasse o DataReader aberto e tentasse rodar outra query qualquer. Ele te diria que já existe um ponteiro definido e ativo, então não pode continuar a tarefa.

    • Sugerido como Resposta SammuelMiranda segunda-feira, 20 de julho de 2015 12:32
    • Marcado como Resposta Marcos SJ sexta-feira, 31 de julho de 2015 18:23
    segunda-feira, 20 de julho de 2015 12:32

Todas as Respostas

  • Olá Marcelo,

    Tudo bem?

    O que você deseja fazer é uma conexão ao Mysql em aplicação .net?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 17 de julho de 2015 18:46

  • estou a iniciar um projeto , e qualquer ajuda é bem vinda . 

    meu problema esta em usar SqlDataReader , ele segura os dados pra eu mover registros pelas setas , como quero transpor o codigo , o erro da em  

    using (SqlConnection objConexao = new SqlConnection(strConnectionString)) creio eu que é porque esse  seja um comando de SQLSERVER então concerteza da erro , 

    nele carrego pra fazer setas , no SQLSERVER porem ainda estava com erros de BOF() . 


    Preciso Adaptar somente setas ao meus forms . Caso  tiver um trecho , ou se tem erros em mySQL com BOF tambem 


    domingo, 19 de julho de 2015 03:51
  • Bom dia Marcelo,

    Tudo bem?

    Eu vi que você mencionou "using (SqlConnection objConexao = new SqlConnection(strConnectionString)) creio eu que é porque esse  seja um comando de SQLSERVER então concerteza da erro". Então pelo que eu entendi além do SQL Server da Microsoft você está utilizando outros tipos de sistemas para fazer a execução do seu projeto, é isso?


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    • Editado Marcos SJ segunda-feira, 20 de julho de 2015 12:25
    segunda-feira, 20 de julho de 2015 12:24
  • Marcelo, no seu código você fechou a conexão com "objConexao.Close()".

    Antes disso você precisa fechar também o DataReader. Teria que, no finally, colocar "objDataReader.Close();" então fechar a conexão.

    No banco de dados, um DataReader NÃO PODE SER DEIXADO ABERTO se você não for mais usá-lo. Mesmo que você feche a conexão, o "ponteiro" gerado no banco de dados pelo datareader continua aberto. O método "Close()" do DataReader encerra o ponteiro. Isso é vital, senão o ponteiro só será fechado quando o banco de dados entender que a conexão está "idle" por muito tempo, então todos os recursos devem ser desalocados.

    O mesmo erro daria, por exemplo, se você deixasse o DataReader aberto e tentasse rodar outra query qualquer. Ele te diria que já existe um ponteiro definido e ativo, então não pode continuar a tarefa.

    • Sugerido como Resposta SammuelMiranda segunda-feira, 20 de julho de 2015 12:32
    • Marcado como Resposta Marcos SJ sexta-feira, 31 de julho de 2015 18:23
    segunda-feira, 20 de julho de 2015 12:32