none
Binding no textbox RRS feed

  • 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, Estado

     

    Eu 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

     

    quarta-feira, 12 de março de 2008 21:57

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.oledb

    Imports 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 Sub

     

    Private Sub lstNomes_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstNomes.Click

    '***********Carrega dados do list para as text boxs ***********************

    Codigo = 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 Sub

     

    Private Sub btnInserir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInserir.Click

    '************************************Script para inserir no banco de dados **************************

    SQL = "insert into tblcadastro (nome,telefone,endereco)values('" + txtNome.Text + "','" + txtTelefone.Text + "','" + txtEndereco.Text + "')"

    CN.Execute(SQL)

     

    '***********************************************************************************************************

    Call CarregarListMenu()

    MsgBox("O novo Registro do(a) << " & txtNome.Text & " >> foi inserido com sucesso.", MsgBoxStyle.Information, "Agenda 2008")

    Call Limpar()

    End Sub

     

    Private Sub btnExcluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcluir.Click

    If MsgBox("Tem certeza que deseja apagar este Registro?", MsgBoxStyle.YesNo + MsgBoxStyle.Critical, "Agenda 2008") = MsgBoxResult.Yes Then

    '****************************Script para apagar do banco de dados **************************************

    SQL = "delete from tblcadastro where codigo=" + Convert.ToString(Codigo) + ""

    CN.Execute(SQL)

     

    '***Variavel Codigo contém o codigo do registro

     

    '*****************************************************************************************************************

    Call CarregarListMenu()

    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)

     

     

    '************************************************************************************************************

    'Limpa a List

    lstNomes.Clear()

    'Permite visualizar os dados da list

    lstNomes.View = View.Details

    'Permite selecionar as linhas

    lstNomes.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").Value

    uNome = RSCadastro.Fields("nome").Value

    uEndereco = RSCadastro.Fields("endereco").Value

    uTelefone = 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 recordset

    RSCadastro.Close()

    '*******************************************

    End Sub

    Sub Limpar()

    txtEndereco.Text = ""

    txtNome.Text = ""

    txtTelefone.Text = ""

    End Sub

     

    Private Sub btnEditar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEditar.Click

    '****************************Script para apagar do banco de dados **************************************

    '***Variavel Codigo contém o codigo do registro

    SQL = "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.TextChanged

    lblTitle.Text = txtNome.Text

    End Sub

    End Class

     

    ObsTongue Tiede 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

    domingo, 16 de março de 2008 01:54