Usuário com melhor resposta
Carregar Grid no mysql

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;
}- Editado Marcelo Gustavo quinta-feira, 16 de julho de 2015 22:16
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
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.
- Sugerido como Resposta Lucio Rogerio SPBanned sexta-feira, 17 de julho de 2015 18:51
-
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
- Editado Marcelo Gustavo domingo, 19 de julho de 2015 03:52
-
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
-
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