Usuário com melhor resposta
Salvar dados do datagridviewer em um banco de dados SDF

Pergunta
-
Boa noite pessoal!
Pelo nível da minha pergunta ficará claro que sou iniciante, por isso preciso de uma ajuda detalhada para resolver um procedimento básico, a seguir descrito:
Vasculhando os fóruns aqui, descobri uma maneira de importar os dados de uma planilha excel para um datagridviewer, até aí funciona perfeitamente, entretanto o código disponibilizado não descreveu como salvar as informações no bando de dados.
No meu caso, tenho um banco de dados "paddados.sdf", tendo uma tabela "PAD" localizado em "c:\dados" e utilizo o VISUAL BASIC 2012, já tentei adaptar inúmeras soluções apresentadas, mas sempre aparece um erro diferente o que me impede de concluir o trabalho.
Pode parecer preguiça, pois poderia alimentar via projeto, haja vista que as rotinas de inserir, alterar e excluir estão todas implementadas. Acontece que são mais de 10.000 linhas, com 20 colunas cada no excel, levaria meses para fazer isso, correndo o risco de cadastrar um processo errado.
Concluindo, como faço para implementar o código para salvar os dados na tabela PAD.
Grato!
Apresento a seguir o código até a fase de preenchimento do grid:
Imports System.Data.OleDb
Imports System.Data.SqlClient
Public Class importaexcel
'Lê os dados do Arquivo Excel
Private Function LerExcel(arquivo As String, nomeAba As String) As DataSet
Dim dts As New DataSet
'String de Conexão
Dim conexao As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & _
arquivo & _
";Extended Properties=Excel 8.0;"
'Comando SQL
Dim sql As String = "select * from [" + nomeAba + "]"
Dim conn As OleDbConnection = Nothing
Try
conn = New OleDbConnection(conexao)
Dim cmd As New OleDbCommand(sql, conn)
Dim da As New OleDbDataAdapter(cmd)
'Aqui Preenchemos o DataSet
da.Fill(dts)
Catch ex As Exception
MessageBox.Show("Erro na Leitura do Arquivo.")
Finally
If conn IsNot Nothing AndAlso conn.State = ConnectionState.Open Then
conn.Close()
End If
End Try
Return dts
End Function
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
Dim arquivo As New OpenFileDialog
'Abrimos a seleção do arquivo excel
If arquivo.ShowDialog = Windows.Forms.DialogResult.OK Then
End If
DGVEXCEL.DataSource = LerExcel(arquivo.FileName, "Plan1$").Tables(0)
dgvcopia.DataSource = DGVEXCEL.DataSource
End Sub
End Class- Editado EDSON PASSOS quinta-feira, 17 de julho de 2014 19:09
Respostas
-
Deu certo. rs...
Cara você me quebrou um galho enorme.
Sei que tem uma pontuação no fórum, como faço para marcar seu nome como item resolvido?
rs que bom que conseguiu,
para marcar uma resposta Edson basta selecionar a opção "Marcar como Resposta" e vai mudar o ícone da sua Thread como Respondido.
Lembrando que a importância de marcar seu post como resolvido é que outros usuarios possam pesquisar a solução para o problema também. Qualquer dúvida pode postar !
- Marcado como Resposta EDSON PASSOS sexta-feira, 18 de julho de 2014 19:35
-
Marquei.
Obrigado pela disposição e paciência de transmitir conhecimento.
Valeu!
- Marcado como Resposta EDSON PASSOS sexta-feira, 18 de julho de 2014 19:36
Todas as Respostas
-
-
Opá, obrigado pela atenção.
O datagrid não está vinculado à tabela do banco, ele traz exatamente como disposto na planilha excel.
A planilha excel apresenta os mesmos campos da tabela, só falta agora o pulo do gato, que é conectar o datagrid á tabela e salvar os dados.
Caso você conheça uma forma mais prática de fazer isso, também atenderia muito bem ao meu objetivo.
-
-
Na verdade só eu usarei este programa quando precisar importar processos do excel para o banco de dados, portanto não há restrições quanto a usuários. A única etapa que fiz até agora foi a apresentada acima, a qual apenas disponibiliza os dados do excel no datagrid.
-
Entendi,
veja se consegue se conectar ao seu banco usando este Tutorial aqui !
Quando conseguir posta que eu lhe ajudo a fazer sua classe para salvar os dados.
-
-
Acabei de analisar o tutorial.
O banco já está conectado ao projeto, já criei o dataset, tableadapter, tudo funcionando beleza. A única coisa que me falta é pegar as informações do datagrid e salvar na tabela pad.
Encaminhei por email as duas telas para você conferir.
-
Daniel, para tentar ser mais claro vou mostrar como faço em outros formulários:
Para inserir dados na tabela via textbox faço assim:
PADTableAdapter.InsertQuery(textbox1.text,textbox2.text, textbox3.text,...)
Me.PADTableAdapter.Fill(Me.PADDADOSDataSet.PAD)
Mas no caso em tela, que os dados vêm do datagrid não sei o que colocar entre parenteses.
PADTableAdapter.InsertQuery(????????????????????????????????????????????????????)
-
Veja se isso lhe ajuda :
For Each linha As DataGridViewRow In DataGridView1.Rows 'MOSTRO O VALOR DA LINHA ATUAL NA CELULA 0 MessageBox.Show(linha.Cells(0).Value) 'MOSTRO O VALOR DA LINHA ATUAL NA CELULA 0 MessageBox.Show(linha.Cells(1).Value) 'NO SEU CASO FICARIA MAIS OU MENOS PADTableAdapter.InsertQuery(linha.Cells(0).Value, linha.Cells(1).Value) Next
-
-
-
-
Deu certo. rs...
Cara você me quebrou um galho enorme.
Sei que tem uma pontuação no fórum, como faço para marcar seu nome como item resolvido?
rs que bom que conseguiu,
para marcar uma resposta Edson basta selecionar a opção "Marcar como Resposta" e vai mudar o ícone da sua Thread como Respondido.
Lembrando que a importância de marcar seu post como resolvido é que outros usuarios possam pesquisar a solução para o problema também. Qualquer dúvida pode postar !
- Marcado como Resposta EDSON PASSOS sexta-feira, 18 de julho de 2014 19:35
-
Marquei.
Obrigado pela disposição e paciência de transmitir conhecimento.
Valeu!
- Marcado como Resposta EDSON PASSOS sexta-feira, 18 de julho de 2014 19:36