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

03 problemas com gridview e gravação


Carlos Rocha

Pergunta

olá

estou com alguns probleminhas com o DataGridView e preciso de ajuda.

1) Toda vez que abro a DataGridView ela vem sempra com a ultima linha toda em branco e não é possivel deletá-la.

Mas, quandovou gravar no banco, eesa linha grava no banco uma linha cpom todos os valores em branco.

Como retirar essa linha em branco?

2) Bom, minha DataGridView está ligada ao banco mysql atraves de datasource, e toda vez que vou alterar um peido e inserir um novo item de pedido no formulario de pedido na DataGridView ,da 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"

Como resolver isso?

veja o codigo que estou usando:

Dim O as integer = 0
 Private Sub Incluir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Incluir.Click
        'a propriedade SelectionMode deve ser igual a FullRowSelect para deletar linhas
        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
       
            Dim O As Integer = DGWPedidos.Rows.Count
            DGWPedidos.Rows(O).Cells(1).Value = dr("pedidoID")
            DGWPedidos.Rows(O).Cells(1).Value = registroproduto
            DGWPedidos.Rows(O).Cells(2).Value = unidade.Text
            DGWPedidos.Rows(O).Cells(3).Value = produto.Text
            DGWPedidos.Rows(O).Cells(4).Value = preço.Text
            DGWPedidos.Rows(O).Cells(5).Value = Convert.ToInt32(qtde.Text)
            DGWPedidos.Rows(O).Cells(6).Value = preço.Text * Convert.ToInt32(qtde.Text)
            O = +O
     
        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
não sei se o procedimento é esse 3) Outro problema e que,quando acabo de gravar um novo registro, recebo a mensagem "Pedido Gravado com sucesso", dai, cliko novamente em Novo Pedido, preencho normalmente os dados do pedido inclusive a DataGridView mas, quando vou gravar no banco, grava o pedido mas da erro de indice na hora de gravar os ítens. Eis o cdódigo que uso nma hora na gravação:
Private Sub incluirRegistro(ByVal dr As DataRow)
        Dim sqlpedidos As String = "INSERT INTO " & TabelaPedidos & " (clienteID,ativo,data)VALUES ('" & codigocli.Text & "','S','" & Format(Date.Today, "yyyy-MM-dd") & "')"
        Dim ds_pedidos As DataSet = accDb.ExecuteDS(sqlpedidos, TabelaPedidos)
        For Each linha As DataGridViewRow In DGWPedidos.Rows
            Dim sqlitens As String = "INSERT INTO " & TabelaDetalhesPedidos & " (pedidoID,produtoID,unidade,descricao,preço,quantidade,subtotal) VALUES ('" & DGWPedidos.Rows(I).Cells(0).Value & "','" & DGWPedidos.Rows(I).Cells(1).Value & "','" & DGWPedidos.Rows(I).Cells(2).Value & "','" & DGWPedidos.Rows(I).Cells(3).Value & "','" & DGWPedidos.Rows(I).Cells(4).Value & "','" & DGWPedidos.Rows(I).Cells(5).Value & "','" & DGWPedidos.Rows(I).Cells(6).Value & "')"
            accDb.ExecuteDS(sqlitens, tabeladetalhespedidos)
            I = I + 1
        Next linha

        Try
            MessageBox.Show("Pedidos incluido com sucesso.")
            CarregaPagina()
        Catch ex As Exception
            MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
        End Try
    End Sub

03 problemas com gridview e gravação

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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...