Avatar billede nielsen2002 Nybegynder
24. oktober 2005 - 20:08 Der er 11 kommentarer og
1 løsning

Insert data fra XML-fil i Database

Hej, jeg sidder med en skole opgave hvor jeg skal hente data fra en XML fil, og indsætte det i en database(i dette tilfælde Access).

men hvordan gør jeg?
jeg havde en ide om at smide dataen fra XML'en i et dataset, og så opdatere der fra. men har ingen anelse om hvad jeg så skal gøre.

        ' ===== DEL 1. Data fra XML fil =============
        Dim objDataSet as new DataSet()
        objDataSet.ReadXml(Server.MapPath("NewCars.xml"))
        dgNyeBiler.datasource = objDataset.Tables("XML_Biler")
        dgNyeBiler.Databind()

Help plz :D

Skal jeg lave en lykke som insætter hver række til databasen eller er der en lettere metode?
Avatar billede arne_v Ekspert
24. oktober 2005 - 20:23 #1
jeg ville nok loope gennem data sættet og lave en insert per række

principielt bør man kunne opdatere en database med et data sæt som er
kompatibelt med det data sæt som hører til databasen, men det tror jeg ikke
er umagen værd at bøvle med
Avatar billede nielsen2002 Nybegynder
24. oktober 2005 - 20:39 #2
jeg er sådan lidt halv nybegynder, så hvordan kunne man gøre det?

Hvis nu jeg starte med at hente én række ud fra datasættet..



Table = objDataset.Tables("XML_Biler")

For each Table.Datarow
 
  objRow("Colonne1") = varCol1
  objRow("Colonne2") = varCol2

Next

Eller er det helt hen i skoven?
Avatar billede arne_v Ekspert
24. oktober 2005 - 20:45 #3
Dim dt As DataTable = ds.Tables("XML_Biler")
For Each dr As DataRow In dt.Rows
    Dim ins As OldDbCommand = New OleDbCommand("INSERT INTO DB_Biler VALUES(" & dr("numcol") & ",'" & dr("textcol") & "')", con)
    ins.ExecuteNonQuery
Next
Avatar billede arne_v Ekspert
24. oktober 2005 - 20:46 #4
utestet - men det er ikke helt ved siden ad

[problemstillingen var oplagt til parameters, men lad os glemme dem lige nu]
Avatar billede nielsen2002 Nybegynder
24. oktober 2005 - 23:00 #5
Okay,  har rodet lidt med det, og får fejlen

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

i - For Each dr As DataRow In dt.Rows - linien

Så den skal vel ha et interval den skal løbe i eller hva?

noget i stil med Rows(0) - Rows(Count - 1)...
Avatar billede nielsen2002 Nybegynder
24. oktober 2005 - 23:02 #6
Lige nu ar jeg koden:

    Dim strRes, strConn, strSQL as string

    ' Build a connection string
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    strConn += server.mappath("./DB/MyRentACar.mdb") + ";"

    ' open the connection to the database
    Dim objConn as New OLEDBConnection(strConn)
    Dim OldDbCommand as new OledbCommand(strSQL, objConn)

    objConn.Open()


        For Each dr As DataRow In dt.Rows 'dt er datatable med XML'ens indhold

            strSQL = "INSERT INTO Cars VALUES('" & dr("CarID") & "','" & dr("make") & "','" & dr("model") &"'," & dr("year") & "," & dr("pricegroup") & ",'" & dr("picture") & "')"
            Dim ins As New OleDbCommand(strSQL, objConn)
            ins.ExecuteNonQuery
        Next

    objConn.close()
Avatar billede arne_v Ekspert
24. oktober 2005 - 23:04 #7
har du fået dt initialiseret rigtigt ?

Dim dt As DataTable = ds.Tables("XML_Biler")
Avatar billede nielsen2002 Nybegynder
24. oktober 2005 - 23:06 #8
ja, det er jeg sikker på
Avatar billede nielsen2002 Nybegynder
24. oktober 2005 - 23:13 #9
Okay, nu virker det sgu :D

Det er helt kannont.  Fik tilrettet diverse ting og sager og endte med noget der virkede :D

Smid et svar så får du point.
Avatar billede arne_v Ekspert
24. oktober 2005 - 23:16 #10
ok
Avatar billede nielsen2002 Nybegynder
24. oktober 2005 - 23:20 #11
Sådan der
Avatar billede nielsen2002 Nybegynder
24. oktober 2005 - 23:21 #12
Og tak for hjælpen, Det skal afleveres i morgen så var lidt presset :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester