none
Como Importar o XML para um DataSet e gravar no banco RRS feed

  • Pergunta

  • Ola amigos, gostaria de saber como importar um arquivo XML e gravar em uma tabela com a mesma estrutura de nomes, tamanhos e tipo.

    Para importar eu sei, o problema e na hora de pegar o Data set e atualizar o banco de dados tudo de uma vez, Como eu nao sei, eu varri linha por linha e fui dando insert no banco de dados, mas ficou muito lento, queria uma forma de atualizar direto a tabela no banco.

    Dim ds As New DataSet

    ds.ReadXml(strCaminhoArquivo & "\Familia.xml")

    Imagino que seja por dataadapt ate tentei, mas nao consegui, pois como vou atualizar sem estar conectado no banco.:

    Dim da As SqlCeDataAdapter

    da.Update(ds, "Familia")



    ??????
    quarta-feira, 4 de julho de 2007 22:56

Respostas

  • Achei a solucao, para quem se interessar segue abaixo.

    Sub ImportaXML(ByVal strArquivo As String, ByVal strTabela As String)

    Try

    Dim ds As New DataSet

    'leia tabela

    ds.ReadXml(strCaminhoArquivo & "\" & strArquivo & ".xml")

    If (ds.Tables.Count > 0) Then

    Dim da As SqlCeDataAdapter

    da = New SqlCeDataAdapter("SELECT * FROM " & strTabela, conn)

    Dim cb As New SqlCeCommandBuilder()

    cb.DataAdapter = da

    da.InsertCommand = cb.GetInsertCommand()

    da.InsertCommand.Connection = conn

    da.Update(ds.Tables(strTabela))

    da.Dispose()

    cb.Dispose()

    da = Nothing

    cb = Nothing

    End If

    ds.Clear()

    ds = Nothing

    Try

    File.Delete(strCaminhoArquivo & "\" & strArquivo & ".xml")

    Catch ex As Exception

    MsgBox("Erro ao deletar tabela " & strTabela & ". Erro:" & ex.Message)

    End Try

    Catch sql As SqlCeException

    MsgBox("Erro no sql da tabela " & strTabela & " Erro:" & sql.Message)

    Catch ex As Exception

    MsgBox("Erro ao importar tabela " & strTabela & ". Erro:" & ex.Message)

    End Try

    End Sub

    quinta-feira, 5 de julho de 2007 00:23