Dans une boucle for de 27 boucles, j'effectue une isolation de mots que j'enregistre dans une base Access si ces mots n'existent pas dans la base. Lorsque la base est vide mon code s'effectue correctement sans erreur.
Une erreur survient lorsque j'effectue une deuxième fois les 27 boucles et que la table n'est pas vide.
L'erreur (Impossible d'ouvrir plus de tables) est ici:
Voici ma boucle for:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim reader As OleDbDataReader = cmdCritique.ExecuteReader(CommandBehavior.CloseConnection)
Comment peut-on corriger cette erreur?
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 For i As Short = 0 To 26 intNb1 = InStr(intNb1, strCode, "<td class=""title"">") intNb1 = InStr(intNb1, strCode, "href=""") intNb2 = InStr(intNb1, strCode, """ >") strLien = Mid(strCode, intNb1 + 6, intNb2 - intNb1 - 6) intNb1 = InStr(intNb2, strCode, "<") strTitre = Trim(Mid(strCode, intNb2 + 3, intNb1 - intNb2 - 3).Replace(vbLf, "")) 'on met deux aposthrophe si il y en a déjà un afin d'éviter une erreur dans la requete sql If strTitre.Contains("'") = True Then strTitre = strTitre.Replace("'", "''") End If sqlCommand = "SELECT Titre,Lien FROM Critiques Where Titre= '" & strTitre & "'" 'exécution de la commande cmdCritique = New OleDbCommand(sqlCommand, cnx) Dim reader As OleDbDataReader = cmdCritique.ExecuteReader(CommandBehavior.CloseConnection) If reader.Read = False Then 'Création d'une nouvelle ligne dtrCritique = dtsCritique.Tables("Critiques").NewRow 'on remet un aposthrophe si il y en a 2 If strTitre.Contains("''") = True Then strTitre = strTitre.Replace("''", "'") End If dtrCritique("Titre") = strTitre dtrCritique("Lien") = strLien 'ajout de la ligne dans le DataSet dtsCritique.Tables("Critiques").Rows.Add(dtrCritique) 'création et exécution du commandbuilder pour mettre à jour le DataAdapter cmdbCritique = New OleDbCommandBuilder(dtaCritique) 'mise à jour des données du DataAdapter à partir du commandbuilder dtaCritique.Update(dtsCritique, "Critiques") End If Next Next
Merci d'avance.
Partager