Desenvolvimento - C#
Acessando dados com Textboxes e botões de navegação
Nesse artigo vamos ver o uso de TextBoxes em conjunto com os botões Primeiro/Anterior/Próximo/Último.
por Ediberto AlvesOlá!
Nesse artigo abaixo vamos ver o uso de TextBoxes em conjunto com os botões Primeiro/Anterior/Próximo/Último. Tantas vezes nos deparamos que temos que usar esses componentes para o tratamento das informações vindas do grid de uma forma rápida.
Importante: O exemplo que estou usando vem do banco de dados Northwind do Access 2007, caso vc não possua, baixe diretamente do site oficial do Microsoft Office.
<a href="http://office.microsoft.com/pt-br/templates/TC012289971046.aspx?pid=CT101428651046"> Northwind 2007</a>
Crie um novo projeto Windows Forms Application
Vá em File > New Project e dê um nome no seu projeto Windows Forms.
Conectando com o banco:
Na seção using, referencie System.Data e System.Data.OleDb
Vamos criar uma rotina que retorne um DataTable com o código, nome e sobrenome dos clientes:
private DataTable recuperaTabelaClientes()
{
string Conexao = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Northwind 2007.accdb;Persist Security Info=False;";
string vSQL = "select identificação, nome, sobrenome from Clientes";
OleDbConnection vConn = new OleDbConnection(Conexao);
OleDbDataAdapter vDataAdapter = new OleDbDataAdapter(vSQL, vConn);
DataTable vTable = new DataTable();
vDataAdapter.Fill(vTable);
return vTable;
}
Importante: Certifique do caminho do banco de dados Northwind 2007.
Implementando o código:
Crie uma variável global do tipo inteiro para receber o código vindo da tabela:
int Contador;
No form coloque quatro buttons, três textboxes e um DataGridView e nomeie-os. Como sugere o texto abaixo:
Buttons:
btnPrimeiro
btnAnterior
btnProximo
btnUltimo
TextBoxes:
txtCodigo
txtNome
txtSobrenome
DataGridView
gridClientes
Ao final, ficará semelhante a essa tela:
Agora, nos botões vamos implementando os códigos, clicando duas vezes sobre eles, primeiro no botão btnPrimeiro:
private void btnPirmeiro_Click(object sender, EventArgs e)
{
if (recuperaTabelaClientes().Rows.Count > 0)
{
Contador = 0;
txtCodigo.Text = recuperaTabelaClientes().Rows[Contador]["identificação"].ToString();
txtNome.Text = recuperaTabelaClientes().Rows[Contador]["nome"].ToString();
txtSobrenome.Text = recuperaTabelaClientes().Rows[Contador]["sobrenome"].ToString();
dataGridView1.CurrentCell = dataGridView1.Rows[Contador].Cells["identificação"];
}
}
No botão btnAnterior:
private void btnAnterior_Click(object sender, EventArgs e)
{
if (Contador == recuperaTabelaClientes().Rows.Count - 1 || Contador != 0)
{
Contador--;
txtCodigo.Text = recuperaTabelaClientes().Rows[Contador]["identificação"].ToString();
txtNome.Text = recuperaTabelaClientes().Rows[Contador]["nome"].ToString();
txtSobrenome.Text = recuperaTabelaClientes().Rows[Contador]["sobrenome"].ToString();
dataGridView1.CurrentCell = dataGridView1.Rows[Contador].Cells["identificação"];
}
}
No botão btnPróximo:
private void btnProximo_Click(object sender, EventArgs e)
{
if (Contador < recuperaTabelaClientes().Rows.Count - 1)
{
Contador++;
DataGridViewRow vGridRow = dataGridView1.Rows[Contador];
txtCodigo.Text = recuperaTabelaClientes().Rows[Contador]["identificação"].ToString();
txtNome.Text = recuperaTabelaClientes().Rows[Contador]["nome"].ToString();
txtSobrenome.Text = recuperaTabelaClientes().Rows[Contador]["sobrenome"].ToString();
dataGridView1.CurrentCell = dataGridView1.Rows[Contador].Cells["identificação"];
}
}
No botão btnUltimo:
private void btnUltimo_Click(object sender, EventArgs e)
{
Contador = recuperaTabelaClientes().Rows.Count - 1;
txtCodigo.Text = recuperaTabelaClientes().Rows[Contador]["identificação"].ToString();
txtNome.Text = recuperaTabelaClientes().Rows[Contador]["nome"].ToString();
txtSobrenome.Text = recuperaTabelaClientes().Rows[Contador]["sobrenome"].ToString();
dataGridView1.CurrentCell = dataGridView1.Rows[Contador].Cells["identificação"];
}
Para complementar,no final de cada evento Click dos botões, tem essa linha:
dataGridView1.CurrentCell = dataGridView1.Rows[Contador].Cells["identificação"];
Justamente quando avança ou retrocede cada registro, a seta que está presente no DataGridView também vai no registro que é carregado nos textboxes.
Compile o projeto (F5) e veja o resultado.
Espero que aproveitem esse exemplo para as soluções do dia-a-dia com o Visual Studio. Até o próximo artigo.
Abraços.
Baixe o código fonte do exemplo: Textboxes_Dados.zip