Bonjour à tous

Depuis quelques semaines j'ai de petits problèmes de mise à jour dans ma base de donner

j'ai un erreur toujours au même endroit. Dans les fait, avant d'inscrire un enregistrement dans la BD je vérifie si elle n'existe pas déjà le tout se déroule bien mais un moment donner ça bug, j'ai essayé plusieurs choses pour résoudre le problème mais rien ne marche. j'ai besoin de quelqu'un de plus chevronner (pas très dur à trouver )

Je vous donne le plus d'info que je peux ... merci de vous pencher sur mon problème

Histoire de voir le comportement de ma machine j'ai fait une petite routine pour tester

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
Private Sub TestTpmToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TestTpmToolStripMenuItem.Click
        Dim IntRou As Integer = 0
        'Faire une séquense de vérification de doublon pour l'ensemble des enregistrements inscrit dans la BD
        For Each Drw As DataRow In Form1._Ds.Tables("TblDonner").Rows
            IntRou = IntRou + 1
            Dim DatDon As Date = CDate(Drw.Item("DateDonner"))
            Dim SymbTmp As String = Drw.Item("Symbole").ToString
 
            Console.WriteLine(String.Format("{0} {1} {2} {3}", DatDon, SymbTmp, DoublonBDDonner(DatDon, SymbTmp), IntRou))
 
            Console.WriteLine("Memory used before collection: {0:N0}", GC.GetTotalMemory(False))
            GC.Collect()
            Console.WriteLine("Memory used before collection: {0:N0}", GC.GetTotalMemory(True))
            Console.WriteLine("")
        Next
 
    End Sub
 
Function DoublonBDDonner(ByVal DateDon As Date, ByVal Symb As String) As Integer
        Dim Ad2 As AcceeDonnee
        Dim Rep As Integer
        'SELECT Count(TblDonner.Prix) AS CompteDePrix FROM TblDonner GROUP BY TblDonner.DateDonner, TblDonner.Symbole HAVING (((TblDonner.DateDonner)=#10/21/2013#) AND ((TblDonner.Symbole)="bnk"));
        Dim SQL As String = "SELECT Count(TblDonner.Prix) AS CompteDePrix FROM TblDonner GROUP BY TblDonner.DateDonner, TblDonner.Symbole HAVING (((TblDonner.DateDonner)=#" & DateDon & "#) AND ((TblDonner.Symbole)=""" & Symb & """));"
        Ad2 = New AcceeDonnee
        Rep = Ad2.FournirValeur(SQL)
        Ad2 = Nothing
        Return Rep
 
    End Function
Dans une classe je fais

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
Function FournirValeur(ByVal SQL As String) As Integer
        Dim Int1 As Integer = 0
        Try
            Me.OuvrirConnexion()
            Dim Cmd As New OleDbCommand()
            With Cmd
                .Connection = Me._cn
                .CommandType = CommandType.Text
                .CommandText = SQL
 
            End With
            Int1 = CType(Cmd.ExecuteScalar, Integer)
            Cmd = Nothing
            Return Int1
        Catch ex As Exception
            Console.WriteLine(ex.Message)
            Console.WriteLine(SQL)
            Throw New ApplicationException("La commande à échoué " & ex.Message)
        Finally
            Me.FermerConnection()
 
        End Try
    End Function
Notez que j'utilise cette méthode depuis plusieurs mois. Voici le message d'erreur

2014-06-05 00:00:00 DMN.PR.A-1189 1 5190
Memory used before collection: 162*975*012
Memory used before collection: 162*965*608


Une exception de première chance de type 'System.Data.OleDb.OleDbException' s'est produite dans System.Data.dll
Ressources système insuffisantes.
SELECT Count(TblDonner.Prix) AS CompteDePrix FROM TblDonner GROUP BY TblDonner.DateDonner, TblDonner.Symbole HAVING (((TblDonner.DateDonner)=#2014-06-05#) AND ((TblDonner.Symbole)="DNA-1133"));
Le programme '[4368] BourseV2.vshost.exe: Managé (v4.0.30319)' s'est arrêté avec le code -1 (0xffffffff).
encore merci de votre soutien

Mario