INSERIR CABECALHO E DADOS NUM DATAGRIDVIEW
Olá pessoal
Tenho pouca experiência em VB.Net e estou com o seguinte problema:
Tenho um form com:
Quatro textbox (Item, Produto, Quantidade e Preço)
Um datagridview
Dois botões (Inserir e Retirar)
O que quero fazer é:
1- Como inserir um cabeçalho no datagridview
2- Ao acionar o botão Inserir, quero trazer os dados que estão nos textbox para o datagridview
3- Ao acionar o botão Retirar, quero deletar os dados da linha que está selecionada do datagridview
Alguém poderia me ajudar?
Tenho pouca experiência em VB.Net e estou com o seguinte problema:
Tenho um form com:
Quatro textbox (Item, Produto, Quantidade e Preço)
Um datagridview
Dois botões (Inserir e Retirar)
O que quero fazer é:
1- Como inserir um cabeçalho no datagridview
2- Ao acionar o botão Inserir, quero trazer os dados que estão nos textbox para o datagridview
3- Ao acionar o botão Retirar, quero deletar os dados da linha que está selecionada do datagridview
Alguém poderia me ajudar?
Clique no grid e em editar colunas, insira as colunas.
DEPOIS,
grid.rows.add
grid.rows(numerodalinha).cells(numerodacelula).value=text1.text
grid.rows.removeat numerodalinhaaremover
DEPOIS,
grid.rows.add
grid.rows(numerodalinha).cells(numerodacelula).value=text1.text
grid.rows.removeat numerodalinhaaremover
E o banco de Dados? Seja mais preciso para ter soluções mais rápidas. Posta o seu projeto ou código.
Segue alguns links:
Trabalhando com datagridview
Estude o código que postei neste tópico
Segue alguns links:
Trabalhando com datagridview
Estude o código que postei neste tópico
Bom, agradeço a ambos mas ainda ficou uma dúvida.
Baseado no que o Robiu postou, modifiquei o meu form para poder conhecer um pouco mais do datagrid. Sendo assim, meu form ficou da seguinte maneira:
- Criei duas tabelas no Access: Ped (Pedidos) e PedItem (Itens do Pedido)
- Cinco textbox (txtPedido, txtItem, txtProduto, txtQuantidade, txtPreco)
- Um Datagridview para conter os itens do pedido (Item, Produto, Quantidade e Preco)
- Três botões: btoAdicionar (para Adicionar dados no Grid), btoRetirar (para Retirar itens do Grid) btoGravar (para Atualizar a tabela)
O funcionamento é simples:
1 - Digitar o número do pedido
1.1 - Se existir exibir os dados no grid (Está fazendo)
1.2 - Se não existir o pedido exibir o cabeçalho no grid (Está fazendo)
2- Ao acionar o botão Adicionar, os dados dos textbox (txtItem, txtProduto, txtQuantidade e txtPreco) devem ser inseridos no datagridview (Não estou conseguindo fazer porque está dando o erro: [Ô]Rows cannot be programmatically added to the DataGridView[ô]s rows collection when the control is data-bound.[Ô])
3- Ao acionar o botão Retirar, os dados do grid devem ser excluÃdos (Está fazendo)
4- Ao acionar o botão gravar, vou ler o grid e gravar as informações na tabela (ainda não fiz, mas não vejo muitos problemas aqui)
Resumindo, meu problema é que não consigo inserir os dados que estão nos textbox no grid.
Seguem abaixo, o trecho quando digito o número do pedido e recupero os dados e quando aciono o botão Adicionar
Private Sub txtPedido_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPedido.Leave
Dim Sql As String
With dgvProdutos
.ForeColor = Color.Black
.MultiSelect = False
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
.DefaultCellStyle.SelectionBackColor = Color.LightYellow
.DefaultCellStyle.SelectionForeColor = Color.Black
.ColumnHeadersDefaultCellStyle.Font = New Font([Ô]Dejavu Sans Mono[Ô], 8, FontStyle.Regular)
.DefaultCellStyle.Font = New Font([Ô]Dejavu Sans Mono[Ô], 8, FontStyle.Bold)
End With
dgvProdutos.Columns.Clear()
conn.ConnectionString = cnxGTE
Sql = [Ô]Select IDITEM as ITEM, PRODIT as PRODUTO, QUANTIT as QUANTIDADE, PRECOIT as PREÇO from PedItem where IDPIT = [Ô] & txtPedido.Text & [Ô];[Ô]
cmd.CommandText = Sql
Dim Adapter As New OleDbDataAdapter(Sql, cnxGTE)
Dim dt As New DataTable([Ô]PEDITEM[Ô])
Adapter.Fill(dt)
dgvProdutos.DataSource = dt
AbrirBco()
Dim Vetor As OleDbDataReader = cmd.ExecuteReader()
Vetor.Close()
FecharBco()
End Sub
Private Sub btoAdicionar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btoAdicionar.Click
Dim Linha As Integer
Linha = dgvProdutos.Rows.Count
dgvProdutos.Rows.Insert(Linha)
dgvProdutos.Rows(Linha).Cells(0).Value = txtItem.Text
dgvProdutos.Rows(Linha).Cells(1).Value = txtProduto.Text
dgvProdutos.Rows(Linha).Cells(2).Value = txtQuantidade.Text
dgvProdutos.Rows(Linha).Cells(3).Value = txtPreco.Text
End Sub
Baseado no que o Robiu postou, modifiquei o meu form para poder conhecer um pouco mais do datagrid. Sendo assim, meu form ficou da seguinte maneira:
- Criei duas tabelas no Access: Ped (Pedidos) e PedItem (Itens do Pedido)
- Cinco textbox (txtPedido, txtItem, txtProduto, txtQuantidade, txtPreco)
- Um Datagridview para conter os itens do pedido (Item, Produto, Quantidade e Preco)
- Três botões: btoAdicionar (para Adicionar dados no Grid), btoRetirar (para Retirar itens do Grid) btoGravar (para Atualizar a tabela)
O funcionamento é simples:
1 - Digitar o número do pedido
1.1 - Se existir exibir os dados no grid (Está fazendo)
1.2 - Se não existir o pedido exibir o cabeçalho no grid (Está fazendo)
2- Ao acionar o botão Adicionar, os dados dos textbox (txtItem, txtProduto, txtQuantidade e txtPreco) devem ser inseridos no datagridview (Não estou conseguindo fazer porque está dando o erro: [Ô]Rows cannot be programmatically added to the DataGridView[ô]s rows collection when the control is data-bound.[Ô])
3- Ao acionar o botão Retirar, os dados do grid devem ser excluÃdos (Está fazendo)
4- Ao acionar o botão gravar, vou ler o grid e gravar as informações na tabela (ainda não fiz, mas não vejo muitos problemas aqui)
Resumindo, meu problema é que não consigo inserir os dados que estão nos textbox no grid.
Seguem abaixo, o trecho quando digito o número do pedido e recupero os dados e quando aciono o botão Adicionar
Private Sub txtPedido_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPedido.Leave
Dim Sql As String
With dgvProdutos
.ForeColor = Color.Black
.MultiSelect = False
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
.DefaultCellStyle.SelectionBackColor = Color.LightYellow
.DefaultCellStyle.SelectionForeColor = Color.Black
.ColumnHeadersDefaultCellStyle.Font = New Font([Ô]Dejavu Sans Mono[Ô], 8, FontStyle.Regular)
.DefaultCellStyle.Font = New Font([Ô]Dejavu Sans Mono[Ô], 8, FontStyle.Bold)
End With
dgvProdutos.Columns.Clear()
conn.ConnectionString = cnxGTE
Sql = [Ô]Select IDITEM as ITEM, PRODIT as PRODUTO, QUANTIT as QUANTIDADE, PRECOIT as PREÇO from PedItem where IDPIT = [Ô] & txtPedido.Text & [Ô];[Ô]
cmd.CommandText = Sql
Dim Adapter As New OleDbDataAdapter(Sql, cnxGTE)
Dim dt As New DataTable([Ô]PEDITEM[Ô])
Adapter.Fill(dt)
dgvProdutos.DataSource = dt
AbrirBco()
Dim Vetor As OleDbDataReader = cmd.ExecuteReader()
Vetor.Close()
FecharBco()
End Sub
Private Sub btoAdicionar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btoAdicionar.Click
Dim Linha As Integer
Linha = dgvProdutos.Rows.Count
dgvProdutos.Rows.Insert(Linha)
dgvProdutos.Rows(Linha).Cells(0).Value = txtItem.Text
dgvProdutos.Rows(Linha).Cells(1).Value = txtProduto.Text
dgvProdutos.Rows(Linha).Cells(2).Value = txtQuantidade.Text
dgvProdutos.Rows(Linha).Cells(3).Value = txtPreco.Text
End Sub
Tópico encerrado , respostas não são mais permitidas