Inquiridor
Binding no textbox

Pergunta
-
Olá Pessoal!
Estou tendo problemas para fazer o binding com textbox. Eu tenho as seguintes tabelas:
- Pedidos: CodigoCliente (e outros campos)
- Clientes: CodigoCliente, Nome, Endereço, CodigoCidade (e outros campos)
- Cidades: CodigoCidade, Nome, EstadoEu tenho um datagridview com linhas referente "Pedidos", e um form com os campos do cliente e da cidade. Nome do cliente é um combobox onde o DisplayMember é "Nome" e o ValueMember é "CodigoCliente". "Endereço" é um textbox e os campos da Cidade são textbox também.
Primeira questão: quando eu aplico um filtro no datagridview, e não existem linhas a serem listadas, o textbox "Endereço" não é limpo (o combobox "Nome" do cliente está vazio).
Segunda questão: como eu faço o binding dos campos da Cidade?
Agradeço qualquer ajuda,
Vanessa
Todas as Respostas
-
Ola vvn,
Em primeiro lugar pelo que eu percebi você ta fazendo a conexão com a base de dados via objeto e isso sempre da pau mesmo! A melhor maneira de fazer uma conexão com a base de dados e via codigo.Ai vai um exemplo em vb.net usando ado e base de dados access:
Nesse exemplo eu usei os seguintes controles:
3 textbox,txtnome,txttelefone,txtendereco
3 buttons,btninserir,btnexcluir,btneditar,btnlimpar
1 listview ,lstnomes
3 labels ,lblInform,lblcount,lblInform2
Base de dados:
1 tabela ,tblcadastro campos:codigo,nome,endereco,telefone
'*****************Importar objetos*****************************
Imports
System.Data.oledbImports
System.Data'*******************************************************************
Public
Class Form1 'Cria variavel de Conexao via ADO ******************************** Public CN As New ADODB.Connection '************************************************************************* 'Cria String de conexao ********************************************** Public sConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=local da sua base de dados" '************************************************************************** 'Cria o Recordset para executar os scripts da linguagem SQL**** Public RSCadastro As ADODB.Recordset '*************************************************************************** 'Variaveis de auxilio no projeto**************************************** Public SQL As String Dim i, uCodigo, Codigo As Integer Dim uNome, uEndereco, uTelefone As String '**************************************************************************** Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Abre conexão com o banco de dados ****************************CN.Open(sConnString)
'************************************************************************** 'Define a variavel como uma nova coleção *************************RSCadastro =
New ADODB.Recordset '************************************************************************** Call CarregarListMenu() End SubCodigo = lstNomes.SelectedItems(0).SubItems(1).Text
txtNome.Text = lstNomes.SelectedItems(0).SubItems(2).Text
lblTitle.Text = lstNomes.SelectedItems(0).SubItems(2).Text
txtEndereco.Text = lstNomes.SelectedItems(0).SubItems(3).Text
txtTelefone.Text = lstNomes.SelectedItems(0).SubItems(4).Text
'********************************************************************************* End SubSQL =
"insert into tblcadastro (nome,telefone,endereco)values('" + txtNome.Text + "','" + txtTelefone.Text + "','" + txtEndereco.Text + "')"CN.Execute(SQL)
MsgBox(
"O novo Registro do(a) << " & txtNome.Text & " >> foi inserido com sucesso.", MsgBoxStyle.Information, "Agenda 2008") Call Limpar() End SubSQL =
"delete from tblcadastro where codigo=" + Convert.ToString(Codigo) + ""CN.Execute(SQL)
MsgBox(
"O Registro do(a) << " & txtNome.Text & " >> foi excluido com sucesso.", MsgBoxStyle.Critical, "Agenda 2008") Call Limpar() End If End Sub Sub CarregarListMenu() '*****************Script para selecionar os registros do banco de dados ***************************SQL =
"select * from tblcadastro"RSCadastro.Open(SQL, CN)
lstNomes.Clear()
'Permite visualizar os dados da listlstNomes.View = View.Details
'Permite selecionar as linhaslstNomes.FullRowSelect =
True '**************Cria colunas no list **************************************************lstNomes.Columns.Add(
"Item", -2, HorizontalAlignment.Left)lstNomes.Columns.Add(
"Codigo", -2, HorizontalAlignment.Left)lstNomes.Columns.Add(
"Nomes", -2, HorizontalAlignment.Left)lstNomes.Columns.Add(
"Endereco", -2, HorizontalAlignment.Left)lstNomes.Columns.Add(
"Telefone", -2, HorizontalAlignment.Left)lstNomes.Columns(0).Width = 0
lstNomes.Columns(1).Width = 0
lstNomes.Columns(3).Width = 0
lstNomes.Columns(4).Width = 0
lstNomes.Columns(2).Width = lstNomes.Width - 5
'******************************************************************************************** '*******************************Carrega os dados do select no list *********************i = 0
Do While RSCadastro.EOF = False And RSCadastro.BOF = False 'Guarda o resultado de pesquisa em variáveis *********************uCodigo = RSCadastro.Fields(
"codigo").ValueuNome = RSCadastro.Fields(
"nome").ValueuEndereco = RSCadastro.Fields(
"endereco").ValueuTelefone = RSCadastro.Fields(
"telefone").Value '*************************************************************************** Dim list As New ListViewItem("item" & i)list.SubItems.Add(uCodigo)
list.SubItems.Add(uNome)
list.SubItems.Add(uEndereco)
list.SubItems.Add(uTelefone)
lstNomes.Items.Add(list)
RSCadastro.MoveNext()
i = i + 1
Loop '*********************************************************************************************lblcount.Text = i
'*******Fecha a conexao do recordsetRSCadastro.Close()
'******************************************* End Sub Sub Limpar()txtEndereco.Text =
""txtNome.Text =
""txtTelefone.Text =
"" End SubSQL =
"UPDATE tblcadastro SET nome='" + txtNome.Text + "', endereco='" + txtEndereco.Text + _ "',telefone='" + txtTelefone.Text + "' where codigo=" + Codigo + ""CN.Execute(SQL)
'*************************************************************************************************************** Call CarregarListMenu()MsgBox(
"O Registro do(a) << " & txtNome.Text & " >> foi atualizado com sucesso.", MsgBoxStyle.Information, "Agenda 2008") Call Limpar() End Sub Private Sub btnLimpar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLimpar.Click Call Limpar() End Sub Private Sub txtNome_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtNome.TextChangedlblTitle.Text = txtNome.Text
End SubEnd
ClassObs
e vc for usar conexão via objeto,como ja estava fazendo,vc vai ter ajustar a propriedade databindings de cada txt manualmente no painel properts.
Qualquer duvida me manda um e-mail no endereco:kassiano_125@yahoo.com.br