Ir para o conteúdo
williamjda

[Resolvido] COMBOBOX - Recebendo dados da consulta SQL

Mensagens Recomendadas

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

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.