DATATABLE PARA MDB
Boa noite, tem alguma forma de enviar todo o conteudo de um datatable para uma tabela do access.
Veja se é isso que procura.
http://www.xtremedotnettalk.com/showthread.php?t=93599
http://www.xtremedotnettalk.com/showthread.php?t=93599
ve se é isso que voce precisa:
http://ferhenriquef.com/2012/01/31/exportando-dados-de-um-datatable-para-o-microsoft-access-exporting-data-to-microsoft-access/
http://www.portugal-a-programar.org/forum/index.php?topic=62910.0
me pontue se te ajudei
vlw
http://ferhenriquef.com/2012/01/31/exportando-dados-de-um-datatable-para-o-microsoft-access-exporting-data-to-microsoft-access/
http://www.portugal-a-programar.org/forum/index.php?topic=62910.0
me pontue se te ajudei
vlw
Pessoal obrigado pela ajuda prém o que estou querendo é alguma forma de enviar todo o conteudo do datatable sem precisar entrar em loop, pois assim já estou fazendo só que demora, devido a quantidade de registros. Os campos do Datatable são iguais os campos da tabela Access.
Nao tem como resolver um problema dessa maneira sem rodar um laço de repetição e ir setando os campos da tabela.
Caso o problema seja travamento do sistema,coloque a rotina dentro de um BackGroundWork.
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Using comando As New SqlCommand([Ô]SEU SELECT AQUI[Ô], con)
Dim I As Integer
Dim oAdapt As New SqlDataAdapter(comando)
Dim oDados As New DataTable([Ô]A[Ô])
Try
oAdapt.Fill(oDados)
For I = 0 To (oDados.Rows.Count - 1)
Using insert As New SqlCommand([Ô]insert into tabela(campo) values([ô][Ô] & oDados.Rows(I)([Ô]CAMPO_CORRESPONDENTE_TABELA A[Ô]) & [Ô][ô])[Ô], con)
insert.ExecuteNonQuery()
End Using
Next
Catch ex As Exception
MsgBox(Err.Description)
Finally
con.Close()
End Try
End Using
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Control.CheckForIllegalCrossThreadCalls = False
BackgroundWorker1.RunWorkerAsync()
End Sub
Caso o problema seja travamento do sistema,coloque a rotina dentro de um BackGroundWork.
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
Using comando As New SqlCommand([Ô]SEU SELECT AQUI[Ô], con)
Dim I As Integer
Dim oAdapt As New SqlDataAdapter(comando)
Dim oDados As New DataTable([Ô]A[Ô])
Try
oAdapt.Fill(oDados)
For I = 0 To (oDados.Rows.Count - 1)
Using insert As New SqlCommand([Ô]insert into tabela(campo) values([ô][Ô] & oDados.Rows(I)([Ô]CAMPO_CORRESPONDENTE_TABELA A[Ô]) & [Ô][ô])[Ô], con)
insert.ExecuteNonQuery()
End Using
Next
Catch ex As Exception
MsgBox(Err.Description)
Finally
con.Close()
End Try
End Using
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Control.CheckForIllegalCrossThreadCalls = False
BackgroundWorker1.RunWorkerAsync()
End Sub
Obrigado pela sugestão, porém não estou conseguindo implementa-la está dando a seguinte mensagem:
Handles clause requires a WithEvents variable defined inthe containing type or one of its base types.
Atenciosamente
Jadson Gois
Handles clause requires a WithEvents variable defined inthe containing type or one of its base types.
Atenciosamente
Jadson Gois
Tópico encerrado , respostas não são mais permitidas