[VB.Net]Connection a Access en local

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 28 juil. 2004 à 14:21
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 28 juil. 2004 à 15:30
Je reçoi une erreur après (environ) 100 requêtes a ma base de donnée SQL (le nombre est jamais identique et je sais que mes requête sont bonne, puisqu'elle a passer a plusieurs reprise avant de planter) ???

Comme vous pouvez le voir, s,il y a un problème, je m'assure de fermer la base de donnée puis je la ré-ouvre, mais pourant, malgré que les 3 variables (OleDbCommand1, OleDbConnection1,drd1) sont bien a nothing, ça marche toujours pas, ça plante quand même. Quelqu'un a une solution ou a une autre façon de se connecter a une base de donnée Access local sans serveur ???

Friend WithEvents OleDbConnection1 As System.Data.OleDb.OleDbConnection
Friend WithEvents OleDbCommand1 As System.Data.OleDb.OleDbCommand
Public drd1 As System.Data.OleDb.OleDbDataReader

Public Sub ouvertureRST(ByVal SelectRST As String)
Static ouvert As Boolean = False
connection()
Me.OleDbCommand1 = New System.Data.OleDb.OleDbCommand(SelectRST, OleDbConnection1)
drd1 = OleDbCommand1.ExecuteReader
End Sub

Public Sub connection()
Static erreur As Integer = 0
Try
Me.OleDbConnection1 = New System.Data.OleDb.OleDbConnection("Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database L" & _
"ocking Mode=0;Jet OLEDB:Database Password=;Data Source=""C:\Documents and Settings\savmax\Mes documents\Visual Studio Projects\HeureW\HeureW2.mdb""" & _
";Password=" & Constante.pass & ";Jet OLEDB:Engine Type=4;Jet OLEDB:Global Bulk" & _
" Transactions=1;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=""w:" & _
"\Timetech\Formulaire\RappTK2000.mdw"";Jet OLEDB:SFP=False;Extended Properties=;Mo" & _
"de=ReadWrite;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=F" & _
"alse;Jet OLEDB:Don't Copy Locale on Compact=True;Jet OLEDB:Compact Without Repl" & _
"ica Repair=False;User ID=" & Constante.logon & ";Jet OLEDB:Encrypt Database=False")
'
'OleDbConnection1
'
'Me.OleDbConnection1.ConnectionString = 

OleDbConnection1.Open()
Catch
If erreur <> 10 Then
erreur += 1
fermerConnection()
connection()
Else
MsgBox("Erreur rendu as 10")
End If
End Try
erreur = 0
End Sub

Public Sub fermerConnection()
On Error Resume Next
OleDbCommand1.Dispose()
OleDbCommand1 = Nothing
OleDbConnection1.Dispose()
OleDbConnection1.Close()
OleDbConnection1.ReleaseObjectPool()
Me.OleDbConnection1.ConnectionString = ""
OleDbConnection1 = Nothing
If Not drd1.IsClosed Then
drd1.Close()
End If
drd1 = Nothing
End Sub


personne peut me répondre ??? pourtant je dois ben pas être le seul qui se connecte a une base de donnée Access avec VB.Net . Si je me fit a VB6.0, il y a toujuors pliens de façon d'y arriver, il y en a peut-être une autre plus rapide qui plante pas ???

1 réponse

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
28 juil. 2004 à 15:30
voici ce que j'ai fait temporairement, puisque ça ralenti le code en maudit, mais au moins, ça plante pus

Public Sub connection()
        Static erreur As Integer = 0
        fermerConnectionRapide()
        Try
            Me.OleDbConnection1 = New System.Data.OleDb.OleDbConnection("Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database L" & _
            "ocking Mode=0;Jet OLEDB:Database Password=;Data Source=""C:\Documents and Settings\savmax\Mes documents\Visual Studio Projects\HeureW\HeureW2.mdb""" & _
            ";Password=" & Constante.pass & ";Jet OLEDB:Engine Type=4;Jet OLEDB:Global Bulk" & _
            " Transactions=1;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=""w:" & _
            "\Timetech\Formulaire\RappTK2000.mdw"";Jet OLEDB:SFP=False;Extended Properties=;Mo" & _
            "de=ReadWrite;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=F" & _
            "alse;Jet OLEDB:Don't Copy Locale on Compact=True;Jet OLEDB:Compact Without Repl" & _
            "ica Repair=False;User ID=" & Constante.logon & ";Jet OLEDB:Encrypt Database=False")
            '
            'OleDbConnection1
            '
            'Me.OleDbConnection1.ConnectionString = 

            OleDbConnection1.Open()
        Catch
            If erreur <> 10 Then
                erreur += 1
                fermerConnection()
                connection()
            Else
                MsgBox("Erreur rendu as 10")
            End If
        End Try
        erreur = 0
    End Sub

    Public Sub fermerConnection()
        On Error Resume Next
        If Not drd1.IsClosed Then
            drd1.Close()
        End If
        drd1 = Nothing
        OleDbCommand1.Dispose()
        OleDbCommand1 = Nothing
        OleDbConnection1.Dispose()
        OleDbConnection1.Close()
        OleDbConnection1 = Nothing
    End Sub

    Public Sub fermerConnectionRapide()
        On Error Resume Next
        drd1.Close()
        OleDbConnection1.Close()
    End Sub
0
Rejoignez-nous