sábado, 31 de março de 2007

Preenchendo um DataGridView de forma desvinculada

Por: Wilker Silva de Oliveira
e-mail: wilker.oliveira@gmail.com

No artigo Utilizando SGBD FireBird 2.0 com ADO.NET, demonstrei de forma rápida, como podemos popular um DataGridView através de consultas do banco de dados.
Nesse artigo, demonstrarei uma outra forma que temos para preencher esse componente desvinculado do banco de dados.

O DataGridView é uma poderosa forma de exibir dados no formato de tabela, tendo a possibilidade de adicionar, apagar dados entre outros recursos.
Para maiores informações sobre esse componente, acesse http://msdnwiki.microsoft.com/pt-br/mtpswiki/e0ywh3cz(VS.80).aspx.

Para demonstrar o preenchimento, criei um formulário conforme Figura 1 abaixo:



Para construir o formulário, utilizei os componentes DataGridView, GroupBox, TextBox, Button e MaskedTextBox, formatando sua máscara para o formato de Phone number - para poder fazer essa formatação, basta selecionar o componente MaskedTextBox e clicar na opção Mask, na janela de Propriedades (Properties Window).

Para adicionar as colunas, selecione o componente DataGridView, e clique na seta que aparece logo em cima, conforme Figura 2 abaixo:



Clique em Add Column....

Basta agora informar o nome para a coluna, qual o tipo e o nome de cabeçalho da coluna conforme Figura 3. Para o tipo da coluna, deixe o padrão: DataGridViewTextBoxColumn.



Faça o mesmo procedimento para os outros campos.
Após o preenchimento das colunas, o formulário ficará conforme Figura 4:



Pronto, podemos então começar a colocar os eventos para cada botão.

Adicionando os dados

De dois clique no botão Adicionar e informe o código conforme abaixo:
   /// 
/// Adiciona os dados no DataGridView
///

private void bt_adicionar_Click(object sender, EventArgs e)
{
// array de string com os dados informados
string[] dados = { tx_nome.Text, tx_fone.Text, tx_celular.Text };

// preenche o datagridview com os dados informados
// cada possição do array de string corresponde a uma
// coluna do nosso datagridview
this.dgv_dados.Rows.Add( dados );

// limpa os dados após o preenchimento
limpa_dados();
}
Verifique que foi chamado um método limpa_dados(), o mesmo serve para limpar os dados após seu preenchimento no DataGridView:
   /// 
/// Limpa os dados após o preenchimento
///

private void limpa_dados()
{
tx_nome.ResetText();// limpa o nome
tx_fone.ResetText();// limpa o telefone
tx_celular.ResetText();// limpa o celular
}
Pronto, conseguimos então preencher um DataGridView sem necessidade de uma conexão com o banco de dados.

Como mais uma opção do nosso formulário, iremos excluir uma linha selecionada do nosso DataGridView, para isso, no evento do botão Excluir, coloque o seguinte código:
   /// 
/// Exclui do DataGridView a linha selecionada
///

private void bt_excluir_Click(object sender, EventArgs e)
{
// tenta pegar o index da linha selecionada
try
{
// pega o index da linha selecioanada
int index = dgv_dados.CurrentRow.Index;

// conforme o index, ele remove a linha do
// datagridview
dgv_dados.Rows.RemoveAt(index);
}
// caso a linha não esteje selecionada, ocorrerá um erro
catch
{
MessageBox.Show("Selecione uma linha!",
"Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Conclusão

Popular um componente DataGridView, é muito simples, vinculado ou não ao banco de dados.
Esse componente fornece várias outras funcionalidades que não foram vistas aqui. Cabe ao leitor se aprofundar mais sobre essas funcionalidaes.

Referências

http://msdnwiki.microsoft.com/pt-br/mtpswiki/e0ywh3cz(VS.80).aspx.

6 comentários:

Sussu disse...

Gostei do artigo. vc poderia explicar como posso pegar o valor de uma linha X coluna especifica.
Por exemplo. Só quero pegar o número do telefone da 3° linha.

Wilker Silva disse...

Boa noite Bequi...

Obrigado pelo comentário...

Vc pode seguir a mesma lógica do botão excluir...porém utilize dgv_dados.CurrentRow.Cells[3].Value, supondo que o número de telefone esteja na 3ª coluna.

Luciano disse...

Muito Bom!!! Estava procurando algo deste tipo :D
Valeu!!!!

Adriano disse...

Foi muito útil essas dicas, pois estava um pouco enferrujado e consegui dar um inicio. Agora posso pesquisar e aprender mais sobre dgv.

Valeu
Adriano

Unknown disse...

Caaaaaaaara......eu passei horas procurando como fazer isso brow....kkkk valeu....kkkkkk

Unknown disse...

cara valeu mesmo