Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

williamjda

[Resolvido] COMBOBOX - Recebendo dados da consulta SQL

Mensagens Recomendadas

williamjda    0
williamjda

Amigos tenho uma duvida.

Tenho um ComboBox que deveria receber os dados de uma consulta SQL. Pois queria fazer isso sem ter que usar o data binding.

A minha questão é que quando clico no combo para carregar os dados da consulta ele retorna o seguinte erro.

Referência de objeto não definida para uma instância de um objeto.

Veja abaixo o código para conexão com o banco.

  Public Sub Select_Dados()
	Try
		'define o comando SQL para selecionar a tabela Cadastro_Empresa
		Dim SQLConsulta = ("SELECT idempresa, nomeempresa FROM Cadastro_Empresa")

		'cria um novo daAdapter para a conexao
		da = New SqlDataAdapter(SQLConsulta, ConectionBD)

		'preenche o dataset - ds
		da.Fill(ds, "Cadastro_Empresa")

	Catch ex As Exception
		'EM CASO DE ERRO, RETORNA A MENSAGEM
		MsgBox(ex.Message, MsgBoxStyle.Exclamation, "SELECT_Cadastro_Empresa")

		'FECHA A CONEXÃO COM O BANCO DE DADOS
		ConectionBD.Close()
	End Try
End Sub

Segue abaixo o código para carregar os dados no ComboBox

Public Sub carregaDadosEmpresa()
	'define uma tabela e referencia a primeira tabela que no caso é a tabela Cadastro_Empresa
	Dim dt As New DataTable
	dt = ds.Tables("Cadastro_Empresa")

	'define um objeto DataRow que representa um registro da tabela
	Dim dr As DataRow

	' Preenche a combobox com os id  da empresas
	For Each dr In dt.Rows()
		Cadastro_Funcionario_Novo.txtempresa.Items.Add(dr("idempresa"))
	Next

	'selecione o primeiro valor
	Cadastro_Funcionario_Novo.txtempresa.SelectedIndex = 0
End Sub

O erro ocorre na seguinte linha do segundo código

' Preenche a combobox com os nomes dos id  da empresas
	For Each dr In dt.Rows()
		Cadastro_Funcionario_Novo.txtempresa.Items.Add(dr("idempresa"))
	Next

Alguém poderia me ajudar a enxergar onde ele perde a referencia?

Att;

William

Editado por williamjda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
williamjda    0
williamjda

Bom amigos.

Depois de dar uma fuçada melhor no google. Achei um exemplo que me ajudou a entender melhor.

Então refiz o código e ficou mais simples e funcional.

Segue abaixo para que quiser um dia fazer o mesmo. Aprendendo hoje e compartilhando sempre!!!! :)

Public Sub CarregaDados_Empresa()
	'FECHA A CONEXÃO COM O BANCO
	ConectionBD.Close()

	Try
		'ABRE A CONEXÃO COM O BANCO
		ConectionBD.Open()

		Dim sqlDados As String = "SELECT idempresa, nomeempresa FROM Cadastro_Empresa"
		Dim cmd As SqlCommand = New SqlCommand(sqlDados, ConectionBD)
		Dim da As SqlDataAdapter = New SqlDataAdapter(cmd)
		Dim dt As DataTable = New DataTable
		da.Fill(dt)

		Cadastro_Funcionario_Novo.txtempresa.ValueMember = "idempresa"
		Cadastro_Funcionario_Novo.txtempresa.DisplayMember= "nomeempresa"
		Cadastro_Funcionario_Novo.txtempresa.DataSource = dt

		'FECHA A CONEXÃO COM O BANCO DE DADOS
		ConectionBD.Close()
	Catch ex As Exception
		'EM CASO DE ERRO, RETORNA A MENSAGEM
		MsgBox(ex.Message, MsgBoxStyle.Exclamation, "SELECT_Cadastro_Empresa")

		'FECHA A CONEXÃO COM O BANCO DE DADOS
		ConectionBD.Close()
	End Try
End Sub

Editado por williamjda

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.