EDN Admin
Well-known member
Boa tarde a todos,
Galera minha duvida é o seguinte tenho uma tabela cliente com varios dados, e criei uma combo que carrego o nome de todos os clientes.
Estou tentando fazer o seguinte quando seleciono um valor da combo quero preencher o resto dos dados desse cliente em umas textbox que tenho, até consegui fazer assim mas apenas com o evento click das textbox, não sei qual o evento proprio da combo para isso, só que quando eu troco um valor na combo gera esse erro: Já existe um DataReader aberto associado a este comando que deve ser fechado primeiro.
Alguém tem alguma dica sobre essas 2 dúvidas? Agradeço desde já e tenha um bom fim de semana.
Segue meu código abaixo:
PS: no caso estou fazendo apenas com o campo telefone.Imports System.Data.OleDb
Public Class AlteraCliente
Dim Conn As OleDb.OleDbConnection
Dim sConnString As String = _
"Provider=OraOLEDB.Oracle;" & _
"Data Source=XE;" & _
"User ID=system;" & _
"Password=123"
Dim cmd As New OleDb.OleDbCommand()
Dim dtadp As OleDbDataAdapter = New OleDbDataAdapter
Dim ds As DataSet
Dim commandBuilder As New OleDbCommandBuilder(dtadp)
Dim dtcliente As New DataTable()
Dim dr As OleDbDataReader
Private Sub carregacliente()
cmd.CommandText = "select * from cliente"
dtcliente.Clear()
dtadp.SelectCommand = cmd
dtadp.Fill(dtcliente)
cboNome.DataSource = dtcliente
cboNome.DisplayMember = "CLI_NOME"
cboNome.ValueMember = "CLI_COD"
cboNome.SelectedIndex = -1
End Sub
Private Sub AlteraCliente_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Conn = New OleDb.OleDbConnection(sConnString)
cmd.Connection = Conn
Conn.Open()
End Sub
Private Sub carregadados()
dr = cmd.ExecuteReader
cmd.CommandText = "select * from cliente where cli_cod = " & cboNome.SelectedValue & ""
If (dr.Read()) Then
txtTel1.Text = dr("cli_fone1").ToString
Else
txtTel1.Text = ""
End If
End Sub
Private Sub txtTel2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTel2.Click
End Sub
Private Sub cboNome_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboNome.Click
carregacliente()
End Sub
Private Sub txtTel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTel1.Click
carregadados()
End Sub
End Class
View the full article
Galera minha duvida é o seguinte tenho uma tabela cliente com varios dados, e criei uma combo que carrego o nome de todos os clientes.
Estou tentando fazer o seguinte quando seleciono um valor da combo quero preencher o resto dos dados desse cliente em umas textbox que tenho, até consegui fazer assim mas apenas com o evento click das textbox, não sei qual o evento proprio da combo para isso, só que quando eu troco um valor na combo gera esse erro: Já existe um DataReader aberto associado a este comando que deve ser fechado primeiro.
Alguém tem alguma dica sobre essas 2 dúvidas? Agradeço desde já e tenha um bom fim de semana.
Segue meu código abaixo:
PS: no caso estou fazendo apenas com o campo telefone.Imports System.Data.OleDb
Public Class AlteraCliente
Dim Conn As OleDb.OleDbConnection
Dim sConnString As String = _
"Provider=OraOLEDB.Oracle;" & _
"Data Source=XE;" & _
"User ID=system;" & _
"Password=123"
Dim cmd As New OleDb.OleDbCommand()
Dim dtadp As OleDbDataAdapter = New OleDbDataAdapter
Dim ds As DataSet
Dim commandBuilder As New OleDbCommandBuilder(dtadp)
Dim dtcliente As New DataTable()
Dim dr As OleDbDataReader
Private Sub carregacliente()
cmd.CommandText = "select * from cliente"
dtcliente.Clear()
dtadp.SelectCommand = cmd
dtadp.Fill(dtcliente)
cboNome.DataSource = dtcliente
cboNome.DisplayMember = "CLI_NOME"
cboNome.ValueMember = "CLI_COD"
cboNome.SelectedIndex = -1
End Sub
Private Sub AlteraCliente_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Conn = New OleDb.OleDbConnection(sConnString)
cmd.Connection = Conn
Conn.Open()
End Sub
Private Sub carregadados()
dr = cmd.ExecuteReader
cmd.CommandText = "select * from cliente where cli_cod = " & cboNome.SelectedValue & ""
If (dr.Read()) Then
txtTel1.Text = dr("cli_fone1").ToString
Else
txtTel1.Text = ""
End If
End Sub
Private Sub txtTel2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTel2.Click
End Sub
Private Sub cboNome_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboNome.Click
carregacliente()
End Sub
Private Sub txtTel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTel1.Click
carregadados()
End Sub
End Class
View the full article