Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

estrela666

VB.NET: Erro em DataReader/Command

Recommended Posts

Olá Forúm! http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

 

Alguém me sabe dizer o que está errado neste código? http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif

 


conn.Open()

 

'variaveis para a tabela cliente

Dim cmd_cli As New SqlClient.SqlCommand("Select * from tlb_clientes", conn) 'Criando objeto Command

Dim dr_cli As SqlClient.SqlDataReader 'Criando objeto DataReader

cmd_cli.CommandType = CommandType.Text

dr_cli = cmd_cli.ExecuteReader

 

'datareader dependentes

Dim dr_dep As SqlClient.SqlDataReader 'Criando objeto DataReader

 

'Listar clientes

Do While dr_cli.Read

'command dependentes

Dim cmd_dep As New SqlClient.SqlCommand("Select * from tlb_dependentes WHERE num_str_cli_dep=" & dr_cli("num_str_cli") & ";", conn) 'Criando objeto Command

cmd_dep.CommandType = CommandType.Text

dr_dep = cmd_dep.ExecuteReader '*** DÁ ERRO AQUI!!

'listar dependentes do cliente

Do While dr_dep.Read

Debug.Print((dr_cli("nome_str_dep")))

Loop

Debug.Print(dr_cli("nome_str_cli"))

Debug.Print(dr_cli("telefone_str_cli"))

Loop _linenums:0'>Dim conn As New SqlClient.SqlConnection("Data Source=localhost;Initial Catalog=pontos;User Id=liliana;Password=1234;") 'Criando objeto Connection conn.Open() 'variaveis para a tabela cliente Dim cmd_cli As New SqlClient.SqlCommand("Select * from tlb_clientes", conn) 'Criando objeto Command Dim dr_cli As SqlClient.SqlDataReader 'Criando objeto DataReader cmd_cli.CommandType = CommandType.Text dr_cli = cmd_cli.ExecuteReader 'datareader dependentes Dim dr_dep As SqlClient.SqlDataReader 'Criando objeto DataReader 'Listar clientes Do While dr_cli.Read 'command dependentes Dim cmd_dep As New SqlClient.SqlCommand("Select * from tlb_dependentes WHERE num_str_cli_dep=" & dr_cli("num_str_cli") & ";", conn) 'Criando objeto Command cmd_dep.CommandType = CommandType.Text dr_dep = cmd_dep.ExecuteReader <strong class='bbc'>'*** DÁ ERRO AQUI!!</strong> 'listar dependentes do cliente Do While dr_dep.Read Debug.Print((dr_cli("nome_str_dep"))) Loop Debug.Print(dr_cli("nome_str_cli")) Debug.Print(dr_cli("telefone_str_cli")) Loop

O erro é o seguinte: "There is already an open DataReader associated with this Command which must be closed first."

Mas eu acho que o DataReader que está aberto é o dr_cli que está associado ao Command cmd_cli.

 

Desde já obrigado!

Liliana

Compartilhar este post


Link para o post
Compartilhar em outros sites

era isso que eu estava desconfiada! Eu preciso listar os clientes e seus dependentes, ou seja, ficaria algo assim:Liliana----Gabriela----VitorPedro----Maria----Sónia----LuísPara isso, eu precisaria de 2 recordsets (falando em vb6). No VB.NET há alguma maneira de fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

arr, deu certo! Vou fazer assim pois estou com o prazo a chegar ao fim, mas eu acho que isto não é muito lógico. Ter duas conexões exactamente iguais... no vb6, bastava iniciar a variavel conn no inicio do programa e podia ter montes de recordsets abertos com essa conexão...

 

Obrigado! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.