Ir para conteúdo

POWERED BY:

Arquivado

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

Joffre Mota

[Resolvido] Popular ComboBox

Recommended Posts

Boa tarde.

 

Estou fazendo uma aplicação usando VB.Net (Visual Studio 2008) e PostgreSql.

 

Aqui está minha classe de conexão com o banco:

Imports Npgsql
Imports System.Data

Public Class ConexaoBD
   Dim ConexaoPG As String = "server=localhost;port=5432;userid=postgres;password=123456;database=WM_Metalurgica"
   Dim conn As NpgsqlConnection = Nothing
   Dim comando As NpgsqlCommand
   Dim reg As Integer

   Public Sub Conectar()
       Try
           conn = New NpgsqlConnection(ConexaoPG)
           conn.Open()
       Catch ex As Exception
           MessageBox.Show(ex.Message, "Erro nos dados!", MessageBoxButtons.OK, MessageBoxIcon.Error)
       End Try
   End Sub

   Function StatusConn() As Boolean
       If (conn.State = ConnectionState.Open) Then
           Return True
       Else
           Return False
       End If
   End Function

   Public Sub TestarConexao()
       Try
           Dim Conn As New ConexaoBD
           Conn.Conectar()
           If (Conn.StatusConn = True) Then
               Form_Principal.lbl_StatusConexao.Text = "Conectado"
               Form_Principal.lbl_StatusConexao.ForeColor = Color.Green
           End If
       Catch ex As Exception
           MessageBox.Show(ex.Message, "Falha na conexão!")
       End Try
   End Sub

   Public Sub AdicionarDados(ByVal comando As NpgsqlCommand)
       Try
           Conectar()
           comando.Connection = conn
           reg = comando.ExecuteNonQuery()
           MessageBox.Show("Dados inseridos com sucesso", "Inclusão de dados", MessageBoxButtons.OK, MessageBoxIcon.Information)
       Catch ex As Exception
           MessageBox.Show(ex.Message, "Erro durante Inclusão!", MessageBoxButtons.OK, MessageBoxIcon.Error)
       Finally
           If Not conn Is Nothing Then
               If conn.State = ConnectionState.Open Then
                   conn.Close()
                   comando.Parameters.Clear()
               End If
           End If
       End Try
   End Sub
End Class

 

Tenho uma tabela funcao com os campos id_funcao e desc_funcao.

O cadastro em funcao está funcionando perfeitamente. Consigo inserir dados na tabela.

 

Aqui o código do meu formulário:

Imports Npgsql

Public Class Form_Cad_Funcao
   Dim comando As New NpgsqlCommand
   Dim bd As New ConexaoBD

   Private Sub btn_Cadastrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Cadastrar.Click
       comando.CommandText = "INSERT INTO funcao(desc_funcao) VALUES(@DescrFuncao)"
       comando.Parameters.AddWithValue("@DescrFuncao", txt_DescrFuncao.Text)
       bd.AdicionarDados(comando)
       txt_DescrFuncao.Text = ""
       txt_DescrFuncao.Focus()
   End Sub

   Private Sub btn_Sair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Sair.Click
       If txt_CodFuncao.Text = "" And txt_DescrFuncao.Text = "" Then
           Close()
       ElseIf MessageBox.Show("Deseja sair sem salvar?", "Atenção!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
           Close()
       End If
   End Sub

   Private Sub btn_Limpar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Limpar.Click
       txt_DescrFuncao.Text = ""
   End Sub

   Private Sub Form_Cad_Funcao_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   End Sub
End Class

 

No meu cadastro de Funcionários quero popular uma ComboBox com os dados da coluna desc_funcao da tabela[/b] funcao.

 

Como devo proceder?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@quintelab,

 

Já olhei esse site dele, mas ele usa um tal de OLEDB que nunca ouvi falar na vida. Estou usando JDBC (acho que é isso mesmo), e não acho nada em lugar algum que explique como fazer.

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas o código não muda, você só tem que trocar seus objetos, no lugar de OleDb colocar JDBC.

 

Abraços...

 

Se ajudar, tenho um modelo em C# usando PostgreSql e NpgSql também, segue o método que traz os dados do banco:


public class SetorDAL
{
public DataTable listarSetor()
       {

           DataTable tabela = new DataTable();
           string strSql;
           strSql = "select * from setor";

           NpgsqlDataAdapter da = new NpgsqlDataAdapter(strSql, Dados.StringDeConexao);
           da.Fill(tabela);
           return tabela;
       }
}

 

e pra popular a combobox

           SetorDAL setor = new SetorDAL();
           setorComboBox.DataSource = setor.listarSetor();  

Compartilhar este post


Link para o post
Compartilhar em outros sites

É. Não consegui não.

 

@m3oliveira,

 

Há algumas inconsistências no código que você me passou quando escrevo aqui no VB. Tentei adaptar, mas não adianta. Não vai. Apenas seleciona as linhas, mas não retorna erro algum.

 

@quintelab,

 

Tentei alterar os objetos, mas continua não dando certo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

É. Não consegui não.

 

@m3oliveira,

 

Há algumas inconsistências no código que você me passou quando escrevo aqui no VB. Tentei adaptar, mas não adianta. Não vai. Apenas seleciona as linhas, mas não retorna erro algum.

 

 

Aqui funciona perfeitamente.Então vou deixar para quem conhece VB ajudar, coloquei mesmo porque pensei que pudesse servir, porém não sei nada de vb.

Abraço e boa sorte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui funciona perfeitamente.Então vou deixar para quem conhece VB ajudar, coloquei mesmo porque pensei que pudesse servir, porém não sei nada de vb.

Abraço e boa sorte.

 

Obrigado pela ajuda cara.

Sou novo em VB.Net também. Mas apanhando a gente chega lá!

Rss...

 

Abraço!

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.