Insertion de donnees : plantage quand trop d ajout
oliverell62
Messages postés13Date d'inscriptionmercredi 5 août 2009StatutMembreDernière intervention 3 septembre 2010
-
13 août 2009 à 11:33
oliverell62
Messages postés13Date d'inscriptionmercredi 5 août 2009StatutMembreDernière intervention 3 septembre 2010
-
13 août 2009 à 12:40
bonjour
c 'est mon premier post ici, j espere que je ne vous ferais pas perdre votre temps
je suis en train de faire un petit soft en vb.net qui utilise access ( c une feuille format *.mdb access 2000 )
ca fonctionne quand pas trop d insertion , par contre l ajout bug quand bcp trop de ligne
je vous livre le code ( que je n ai pas encore transferer en fonction et methode )
(ps : je viens du php c mon premier en vb soyez indulgent ) :
Private Sub Button_import_stats_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_import_stats.Click
' on active la demande que si maj de selectionne
Dim dateurl As String = ""
Dim _classement_brut As New classement_joueur
Dim j As Integer
Dim type As New ArrayList()
type.Add("stat_a")
type.Add("stat_b")
type.Add("stat_c")
If ListBox_rank.SelectedItem <> "" Then ' si rien de selectionne , on fait rien ....
' on se co a la bdd
Dim bdd As New access
Dim split_données() As String
For j = 0 To 2 ' on update les trois type de stats a tour de role
bdd.cnx = New OleDbConnection
bdd.cnx.ConnectionString = bdd.cnxstr
bdd.cnx.Open()
dateurl = ListBox_rank.SelectedItem.ToString
ogs.postDATA = ""
ogs.action = "?action=statistique&date=" & dateurl & "&type=" & type.Item(j)
ogs.requete(url, ogs.action, ogs.postDATA)
_classement_brut.datadate = dateurl
_classement_brut.recup_splitresponse(_classement_brut.response)
Dim tableau_donnees() = _classement_brut.split_response ' split des donnes recupere
Dim i As Integer
For i = 1 To _classement_brut.split_response.Length - 2 , -2 car deriniere ligne est vide et la premiere commence a 0 et comme 0 ne m interesse pas je demarre a 1
split_données = Split(tableau_donnees(i), "<||>", , CompareMethod.Text)
' on integre les valeurs
bdd.sql = "select rank_" & type.Item(j) & ".* from rank_" & type.Item(j) 'Création de la requête sql
bdd.cmd = New OleDbCommand(bdd.sql) 'Création de la commande et on l'instancie (sql)
bdd.dta = New OleDbDataAdapter(bdd.cmd) 'Création du dataadapter (dta) et on l'instancie (cmd)
bdd.cmd.Connection() = bdd.cnx 'On instancie la commande (cmd) à la connection (cnx)
bdd.dta.Fill(bdd.dts, "rank_" & type.Item(j)) 'On charge le dataset (dts) grace à la propriété fill du dataadapter (dta)
bdd.dtt = bdd.dts.Tables("rank_" & type.Item(j)) 'On charge la datatable (dtt) grace à la propriété tables du dataset (dts)
_classement_brut.datadate = dateurl
_classement_brut.rank = split_données(2)
_classement_brut.player = split_données(0)
_classement_brut.ally = split_données(1)
_classement_brut.points = split_données(3)
sender = split_données(4)
'crátion d'une nouvelle ligne avec les données des textbox
bdd.dtr = bdd.dts.Tables("rank_" & type.Item(j)).NewRow
bdd.dtr("datadate") = _classement_brut.datadate
bdd.dtr("rank") = _classement_brut.rank
bdd.dtr("player") = _classement_brut.player
bdd.dtr("ally") = _classement_brut.ally
bdd.dtr("points") = _classement_brut.points
bdd.dtr("sender_id") = sender
'ajout de la ligne dans le DataSet
bdd.dts.Tables("rank_" & type.Item(j)).Rows.Add(bdd.dtr)
'création et exécution du commandbuilder pour mettre à jour le DataAdapter
bdd.cmdb = New OleDbCommandBuilder(bdd.dta)
'mise à jour des données du dataadapter(dta)à partir du commandbuilder (cmdb)
bdd.dta.Update(bdd.dts, "rank_" & type.Item(j))
'on vide le dataset pour le recréer avec les nouvelles données
bdd.dts.Clear()
bdd.dta.Fill(bdd.dts, "rank_" & type.Item(j))
bdd.dtt = bdd.dts.Tables("rank_" & type.Item(j))
'_classement_brut.add_bdd(dateurl, _classement_brut.split_response, i)
Next
bdd = end_connexion()
console_write = " importation de stats "
add_console_write(console_write, "<<>>")
console_write = Nothing
Next ' fin de j 0 to 2
Else
MsgBox("vous n avez pas selectionne de statistique")
End If
End Sub
si qqn sait pourquoi ca bugouille lamentablement quand on travaille sur plus de 1000 lignes
pour info ca reste sur j 0 ( donc le bug est a l interieur de la boucle j 0 to 2
d avance merci
A voir également:
Insertion de donnees : plantage quand trop d ajout