VB.NET - Exibindo registros selecionados com TabControl
Neste artigo vou mostrar mais um recurso que você pode usar para manutenção/apresentação de dados usando os controles DataGrid e TabControl.
Vamos usar também o namespace System.Data.SqlClient que irá fornecer as classes para acesso a um banco de dados SQL Server.
Nosso objetivo é obter duas visões dos dados da tabela Customers do banco de dados Northwind presente no SQl Server.
Vamos então construir esta interface usando o controle TabControl e o controle DataGrid.
Inicie um novo projeto no VS.NET do tipo Windows Application usando a linguagem VB.NET ; dê ao projeto o nome de dgSelecionaRegistro.(ou qualquer outro nome que julgue pertinente)
Altere também a propriedade Name do formulário para frmClientes.
No formulário padrão inclua (arraste e solte) o controle TabControl a partir da caixa de ferramentas (ToolBox).
Vamos agora criar duas abas no controle TabControl. Para isto selecione o controle e na janela de propriedades localize a propriedade TagPages ; clique no botão com os três pontinhos para criar e atribuir nomes para as duas abas que vamos criar. Veja a figura abaixo:
- Altere a propriedade Name do controle para tabSelecionaRegistro.
Vamos definir o namespace a ser usado e as variáveis de acesso aos dados. Abaixo temos estas declarações:
A declaração do namespace usados deve ser feita no início do projeto.
I
mports System.Data.SqlClientDefinição das variáveis que deve ser feita no início do formulário.
Private
Const strConexao As String = "server=(local);trusted_connection=true;database=Northwind;Integrated Security=SSPI"Acima estamos definindo a string de conexão com o banco de dados Northwind do SQL Server e a instrução SQL que será usada para selecionar os dados da tabela Customers.
Vamos selecionar a aba Relação de Clientes e incluir no controle TabControl o componente DataGrid, conforme a figura abaixo:
Nome dos
controles : DataGrid - dgClientes |
A seguir clique na aba - Cliente Selecionado - inclua os controles label e TextBox para cada campo que desejamos exibir, conforme abaixo:
Vamos incluir também uma controle Label com o nome de lblRegistros que irá exibir o registro atual e o número total de registros da tabela.
Vamos agora ao código do projeto:
1- No evento Load do formulário temos o código que irá preencher um dataset com os dados da tabela Customers e exibir todos os dados no datagrid.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim da As SqlDataAdapter ' Cria o SqlDataAdapter. da = New SqlDataAdapter(strSQL, strConexao) ' Mapeia a tabela Customers da.TableMappings.Add("Table", "Customers") ' preenche o dataset ds = New DataSet Try da.Fill(ds) Catch ex As Exception MsgBox(ex.Message()) Exit Sub End Try ' Vincula o controle DataGrid ao datatable Customers dgClientes.SetDataBinding(ds, "Customers") End Sub |
Quando o usuário clicar em um determinado cliente do DataGrid iremos exibir os dados referente ao cliente na aba - Cliente Selecionado, para isto usamos o seguinte código no
Private Sub dgClientes_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgClientes.Click Me.posicaoRegistro = dgClientes.CurrentRowIndex carregaDados() End Sub |
Perceba que atribuímos a posição atual do registro á variável posicaoRegistro e chamamos a rotina carregaDados(). O código desta rotina é o seguinte:
Private Sub carregaDados() Dim campo As DataRow 'sua a posição atual do registro criar uma linha de dados campo = ds.Tables(0).Rows(posicaoRegistro) 'preenche os controles TextBox com os dados Me.txtCodigo.Text = campo(0) Me.txtEmpresa.Text = campo(1) Me.txtContato.Text = campo(2) Me.txtEndereco.Text = campo(3) Me.txtCidade.Text = campo(4) 'verificamos se o campo é null Me.txtRegiao.Text = IIf(campo(5) Is DBNull.Value, "Nulo", campo(5)) Me.txtPais.Text = campo(6) Me.txtTelefone.Text = campo(7) 'exibe o núemro do registro atual e o total de registro Me.lblRegistros.Text = "Registro " & Me.posicaoRegistro + 1 & " de " & ds.Tables(0).Rows.Count End Sub |
Executando o projeto temos na primeira visão , na aba Relação de clientes , todos os clientes sendo exibidos no datagrid. A clicar em um cliente e selecionarmos a aba - Cliente Selecionado - teremos os dados do cliente exibidos conforme a figura abaixo:
|
Pegue o código do projeto aqui : selecionaRegistro.zip
Eu sei , é apenas VB.NET , mas eu gosto...
José Carlos Macoratti