Bonjour à tous, voilà, j'arrive à insérer des données provenant de fichier XML via la code quivant que j'ai trouvé sur Internet :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Try
ForEach FileToRestore AsStringInMe.chlb.CheckedItems
Dim objSQLConn AsNew SqlConnection("Data Source=" & SelectedServer & ";Initial Catalog=" & Me.cboDatabase.Text & ";Persist Security Info=True;User ID=" & Username & ";Password=" & Password)
Dim objAdapter As SqlDataAdapter
Dim objDataRow, objDBRow As DataRow
Dim objDSXML AsNew DataSet()
Dim objDSDBTable AsNew DataSet()
Dim ObjCmdBuilder As SqlCommandBuilder
ProgressBar.Maximum = Me.chlb.CheckedItems.Count
ProgressBar.Step = 1
objDSXML.ReadXml(TempFolder & "arcam\" & FileToRestore & ".txt")
objSQLConn.Open()
Dim i AsInteger = 0
Dim j AsInteger = 0
For i = 0 To objDSXML.Tables.Count - 1
objAdapter = New SqlDataAdapter("SELECT * FROM " & "[" & objDSXML.Tables(i).TableName & "]", objSQLConn)
objAdapter.Fill(objDSDBTable, objDSXML.Tables(i).TableName)
Application.DoEvents()
ForEach objDataRow In objDSXML.Tables(i).Rows
With objDSDBTable.Tables(i)
objDBRow = .NewRow()
For j = 0 To objDSXML.Tables(i).Columns.Count - 1
objDBRow(j) = objDataRow(j)
Application.DoEvents()
Next
.Rows.Add(objDBRow)
EndWith
ObjCmdBuilder = New SqlCommandBuilder(objAdapter)
objAdapter.Update(objDSDBTable, objDSXML.Tables(i).TableName)
Application.DoEvents()
Next
Application.DoEvents()
Next
objSQLConn.Close()
Next
MsgBox("Restauration terminée avec succès", MsgBoxStyle.Information, "Fin de la restauration")
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Erreur lors de la restauration des données")EndTry
Mon problèm est que ce code fonctionne pour des petits fichiers, mais dès que l'on dépasse le 10 Mo, cela prend énormément de temps. Je pense qu'il faudrait l'optimiser, mais je n'y connais pas grand chose car je ne suis encore qu'un débutant

En espèrant avoir des informations de votre part, merci à tous !