Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com DBGrid


Carlos Rocha

Pergunta

Estou tendo alguns probleminhas com meu estudo de VB.Net

Tenho um form de pedidos e nele, umaDataGridView para listar, inserir e deletar(alteração) os ítens do pedido.

A datagridaview, quando vou digitar um Novo Pedido, eu retiro o datasource e o preencho manualmente,sem problemas.

A datagridaview fica enable= true mas com readionly= true.

A datagridaview tem Datasource ligado ao banco.

Quando vou criar um novo pedido, eu faço dgwpedidos.datasource = nothing desligando ela do banco e depois, crio manualmente as colunas do DataGridView mas quando vou alterar um pedido eu não tiro o datasource .

Problemas:

Quando estou gravando novo pedido, consigo gravar quantas linhas quizer mas quando desisto de algum, ítem e vou deletar, ai da o seguinte erro:

O índice estava fora do intervalo. Ele deve ser não-negativo e menor que o tamanho da coleção. Nome do parâmetro: index

Quando esto alterando um pedido da esse erro tambem tanto para inmserir quanto para deletar os ítens do pedido que se encontram nele.

Ouitro último problema com datagridview é que não conmseigo gravar valores de dinheiro.

Por exemplo: Na textbox esta 32,63 aí vai para a datagridview 32

Como resolover isso?

Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Esqueci de mostrar o código que estou usando para inserir registros (ítens do pedido) na datagridview:

Private Sub Incluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Incluir.Click
        If cliente.Text = String.Empty Then
            MsgBox("Escolha o clientes...")
            bcliente_Click(Nothing, Nothing)
            Exit Sub
        ElseIf produto.Text = String.Empty Then
            MsgBox("Escolha o produto.")
            bproduto_Click(Nothing, Nothing)
            Exit Sub
        ElseIf qtde.Text = String.Empty Then
            MsgBox("Informe a quantidade requerida...")
            qtde.Focus()
            Exit Sub
        End If

        If Novo.Text = "Incluir" Then ' se for novo pedido
            DGWPedidos.Rows.Add(Convert.ToInt32(Proximopedido), registroproduto, unidade.Text, produto.Text, preço.Text, Convert.ToInt32(qtde.Text), preço.Text * Convert.ToInt32(qtde.Text))
        Else ' se for editar pedido
            'DGWPedidos.CurrentRow.Cells(0).Value = dr("pedidoID")
            'DGWPedidos.CurrentRow.Cells(1).Value = registroproduto
            'DGWPedidos.CurrentRow.Cells(2).Value = unidade.Text
            'DGWPedidos.CurrentRow.Cells(3).Value = produto.Text
            'DGWPedidos.CurrentRow.Cells(4).Value = preço.Text
            'DGWPedidos.CurrentRow.Cells(5).Value = Convert.ToInt32(qtde.Text)
            'DGWPedidos.CurrentRow.Cells(6).Value = preço.Text * Convert.ToInt32(qtde.Text)
            I = DGWPedidos.Rows.Count
            DGWPedidos.Rows(I).Cells(1).Value = dr("pedidoID")
            DGWPedidos.Rows(I).Cells(1).Value = registroproduto
            DGWPedidos.Rows(I).Cells(2).Value = unidade.Text
            DGWPedidos.Rows(I).Cells(3).Value = produto.Text
            DGWPedidos.Rows(I).Cells(4).Value = preço.Text
            DGWPedidos.Rows(I).Cells(5).Value = Convert.ToInt32(qtde.Text)
            DGWPedidos.Rows(I).Cells(6).Value = preço.Text * Convert.ToInt32(qtde.Text)
            I = I + 1
        End If
        total.Text = 0.0
        For Each linha As DataGridViewRow In DGWPedidos.Rows
            total.Text += linha.Cells(6).Value
            '  total.Text = Format(total.Text, "#,##0.00")
        Next linha
    End Sub

Quando eu abro a DBGrid, tanto na hora da navegação quanto na hora de um novo pedido, aparece sempre uma linha em branco no final da dagridvbiew que inclusive vai para o banco na hora da insersão.

Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...