Wagner Fillio Postado Fevereiro 24, 2015 Denunciar Share Postado Fevereiro 24, 2015 Olá, sou novo por aqui e gostaria que me ajudassem a resolver um problema com os combobox relacionados. Sendo o primeiro combo = cbxOperacao o segundo = cbxSupervisor e o terceiro = cbxDiretor O sistema consegue pegar a informação do primeiro combo, mas não puxa as informações do segundo e terceiro. Segue código: Private Sub PreencheOperacao() Dim con As New SqlConnection(strCon) Dim cmd As New SqlCommand() cmd.Connection = con cmd.CommandType = CommandType.Text cmd.CommandText = "SELECT ope_id, ope_nome FROM TBcad_operacao" Dim objDs As New DataSet() Dim dAdapter As New SqlDataAdapter() dAdapter.SelectCommand = cmd con.Open() dAdapter.Fill(objDs) con.Close() cbxOperacao.ValueMember = "ope_id" cbxOperacao.DisplayMember = "ope_nome" cbxOperacao.DataSource = objDs.Tables(0) End Sub Private Sub cbxOperacao_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) If cbxOperacao.SelectedValue.ToString() <> "" Then Dim ope_id As Integer = Convert.ToInt32(cbxOperacao.SelectedValue.ToString()) PreencheSupervisor(ope_id) cbxDiretor.SelectedIndex = 0 End If End Sub Private Sub PreencheSupervisor(ByVal ope_id As Integer) Dim con As New SqlConnection(strCon) Dim cmd As New SqlCommand() cmd.Connection = con cmd.CommandType = CommandType.Text cmd.CommandText = "SELECT sup_id, sup_nome FROM TBcad_supervisor WHERE ope_id =@ope_id" cmd.Parameters.AddWithValue("@ope_id", ope_id) Dim objDs As New DataSet() Dim dAdapter As New SqlDataAdapter() dAdapter.SelectCommand = cmd con.Open() dAdapter.Fill(objDs) con.Close() If objDs.Tables(0).Rows.Count > 0 Then cbxSupervisor.ValueMember = "sup_id" cbxSupervisor.DisplayMember = "sup_nome" cbxSupervisor.DataSource = objDs.Tables(0) End If End Sub Private Sub cbxSupervisor_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Dim sup_id As Integer = Convert.ToInt32(cbxSupervisor.SelectedValue.ToString()) PreencheDiretor(sup_id) End Sub Private Sub PreencheDiretor(ByVal sup_id As Integer) Dim con As New SqlConnection(strCon) Dim cmd As New SqlCommand() cmd.Connection = con cmd.CommandType = CommandType.Text cmd.CommandText = "SELECT dir_id, dir_nome FROM TBcad_diretor WHERE sup_id =@sup_id" cmd.Parameters.AddWithValue("@sup_id", sup_id) Dim objDs As New DataSet() Dim dAdapter As New SqlDataAdapter() dAdapter.SelectCommand = cmd con.Open() dAdapter.Fill(objDs) con.Close() If objDs.Tables(0).Rows.Count > 0 Then cbxDiretor.ValueMember = "dir_id" cbxDiretor.DisplayMember = "dir_nome" cbxDiretor.DataSource = objDs.Tables(0) End If End Sub End Class Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo_2 Postado Fevereiro 25, 2015 Denunciar Share Postado Fevereiro 25, 2015 (editado) cara, tua sql de busca tenta assim: select * from tabela where coluna 1 = ? and coluna 2 = ? and coluna 3=? nos parametros você relaciona cada interrogação c/ sua combobox respectiva, tipo: <SelectParameters> <asp:ControlParameter ControlID="DropDownList1" Name="id" PropertyName="SelectedValue" /> <asp:ControlParameter ControlID="DropDownList2" Name="nome" PropertyName="SelectedValue" /> </SelectParameters> tentahe.. :) Editado Fevereiro 25, 2015 por Marcelo_2 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Wagner Fillio Postado Fevereiro 26, 2015 Autor Denunciar Share Postado Fevereiro 26, 2015 (editado) Private Sub PreencheSupervisor(ByVal ope_id As Integer) Dim con As New SqlConnection(strCon) Dim cmd As New SqlCommand() cmd.Connection = con cmd.CommandType = CommandType.Text cmd.CommandText = "SELECT sup_id, sup_nome FROM TBcad_supervisor WHERE ope_id =@ope_id" cmd.Parameters.AddWithValue("@ope_id", ope_id) Dim objDs As New DataSet() Dim dAdapter As New SqlDataAdapter() dAdapter.SelectCommand = cmd con.Open() dAdapter.Fill(objDs) con.Close() If objDs.Tables(0).Rows.Count > 0 Then cbxSupervisor.ValueMember = "sup_id" cbxSupervisor.DisplayMember = "sup_nome" cbxSupervisor.DataSource = objDs.Tables(0) End If End Sub Private Sub cbxSupervisor_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Dim sup_id As Integer = Convert.ToInt32(cbxSupervisor.SelectedValue.ToString()) PreencheDiretor(sup_id) End Sub Cara, Obrigado pela atenção! Mas não deu certo! Tentei mudar os códigos aplicando o VB, ao invéz de asp. Editado Fevereiro 26, 2015 por Wagner Fillio Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Wagner Fillio Postado Fevereiro 27, 2015 Autor Denunciar Share Postado Fevereiro 27, 2015 Consegui, Alterei o comando "Private Sub cbxOperacao_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)" para: "Private Sub cbxOperacao_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbxOperacao.SelectedIndexChanged" Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Wagner Fillio
Olá, sou novo por aqui e gostaria que me ajudassem a resolver um problema com os combobox relacionados.
Sendo o primeiro combo = cbxOperacao
o segundo = cbxSupervisor
e o terceiro = cbxDiretor
O sistema consegue pegar a informação do primeiro combo, mas não puxa as informações do segundo e terceiro.
Segue código:
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.