Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

José Alexandre Fagundes

Salvar registros de DataGrid no SqlServer

Recommended Posts

Boa Tarde:

 

Tenho uma aplicação Windows que server para inserir parcelas de um cartão de crédito.

Consigo através de um laço Loop ... For, crias as parcelas e inserir em um datagrid. O problema é transferir as parcelas do datagrid para o SqlServer compact que vem no Visual Basic 2010 Express. Criando uma base de dados, em seguida um dataset e puxando o mesmo para o formulário tudo bem, isto em consigo e aprendi no livro. Como o meu projeto ele cria vários registros no datagrid um abaixo do outro, se eu utilizar o dataset para enviar os dados para o SQL ele dá erro na linha " Datagrid.Rows.Add().

 

Public Class Form1

    'Declaração de variáveis

    Dim TotalParcelas As Integer
    Dim mes As Integer
    Dim total As Integer
    Dim contagem As Integer
    Dim valor As Decimal
    Dim Candidatos As Integer

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles BttCalculaParcela.Click

        If TextBox1.Text <> "" Then

            TotalParcelas = TextBox1.Text
            total = mes + (TotalParcelas - 1)
            valor = TextBox2.Text
            mes = 0

            'Aqui começa o loop

            For ContadorMes = mes To total

                'Criei este listbox para ver na tela na execução se as variáveis estavam calculando certo

                contagem = contagem + 1
                ListBox1.Items.Add("Parcela " & contagem & "/" & TotalParcelas & "  " & TextBox2.Text)

                'Aqui jogo os valores das variáveis em uma grade para depois mandar para a base de dados que ainda nem criei.
                'E tambpem ainda não sei como conectar. Vai ser o Próximo passo

                DataGridParcelas.Rows.Add()
                DataGridParcelas.Item(0, Candidatos).Value = Candidatos + 1
                DataGridParcelas.Item(1, Candidatos).Value = "Parcela " & contagem & "/" & TotalParcelas
                DataGridParcelas.Item(2, Candidatos).Value = CDec(TextBox2.Text)
                DataGridParcelas.Item(3, Candidatos).Value = DateTimePicker1.Value.AddMonths(ContadorMes)
                DataGridParcelas.Item(4, Candidatos).Value = CredorLabel1.Text
                Candidatos = Candidatos + 1

            Next

        Else

            MsgBox("Digite um número")

        End If

    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles BttCadastraCredor.Click

        Form2.Show()

    End Sub
   
End Class

Com este código consigo criar por exemplo:

Pagamento Lojas Renner, parcelas de 1 a 5 no valor de 100,00 cada, gerando assim cinco linhas no datagrid, uma para cada parcela com o valor unitário de 100,00 por linha.

 

 

Gostaria de saber se tem alguma maneira de configurar o Dataset para aceitar os vários registros de uma só vez para guardar no Sql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom sou iniciante no Visual Basic 2010 Express.

Comprei o livro Programação em Visual Basic 2010 de Paulo Capela Marques e estou seguindo os exemplos do livro. Alguns não dão muito certo. Vou ter que aos poucos achar os problemas.

 

No caso específico deste projeto, com exemplos tidados do livro, os passos seriam criar a base de dados no próprio visual Basic através da Sql Compact e depois criar um dataset. Do dataset, seleciona-se a opção DataGridView na tabela de dados e puxo para o formulário, largando em cima do datagrid que criei para inserir as parcelas através do código Loop ... For que criei.

Até aí entendido.

Neste momento o Visual Basic cria o ContaDataSet, ContaBindingSource, ContaTAbleAdapter e TableAdapterManager

 

Quando vou rodar o projeto, o VB dá o seguinte erro: " InvalidOperationException was unhandled"

 

Rows cannot be programatically added to the DataGridView's rows collection when the control is data-bond.

 

E o VB seleciona o comando " DadaGridparcelas.Rows.Add() como erro.

 

Ou seja, não consigo criar as parcelas sequencialmente linha por linha.

Por isto eu estava pensando que a saída seria, rodar o Loop ... For, criar as parcelas no data grid.

Depois através de outro comando tipo uma conexão no sql , criar outro loop, buscar linha por linha do DataGrid e ir gravando uma por uma na tabela Contas do Banco de dados Sql.

 

O problema é que não estou achando na Web, uma receita de bolo tipo: Como conectar ao Sql, depois como inserir dados do Datagrid no Sql. Acho que isto deve ser feito através de código.

Ou mesmo algum comando que faça o VB aceitar as parcelas do datagrid via via dataset.

 

Caro, se estou errado neste processo, podes informar. Agradeço opiniões.

Vou continar pesquisando e lendo sobre o assunto na web.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não pode inserir rows no datagridview manualmente se você já tem um dataset ligado a ele, o controle deve estar separado de todo tipo de conexão de banco para você poder adicionar linhas manualmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.