Connection Access VB.Net

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 15 juil. 2004 à 21:07
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 15 juil. 2004 à 22:03
Je sais que c'est pas la meilleur connection, mais j'ai pas trouver mieux pour me connecter a access (ou plutot c'était pas ça l'important pour le moment) avec VB.Net

j'ai cette variable
Public drd1 As System.Data.OleDb.OleDbDataReader


j'ai aussi un OLEDbCommand qui est de type System.Data.OleDb.OleDbConnection

quand je veux faire un select, insert, delete, update, ... dans ma base de donnée SQL, j'appel cette fonction

Public Sub ouvertureRST(ByVal SelectRST As String)
        connection()
        Me.OleDbCommand1 = OleDbConnection1.CreateCommand
        OleDbCommand1.CommandText = SelectRST
        drd1 = OleDbCommand1.ExecuteReader
    End Sub

Public Sub connection()
        Me.OleDbConnection1 = New System.Data.OleDb.OleDbConnection
        '
        'OleDbConnection1
        '
        Me.OleDbConnection1.ConnectionString = "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.Open()
    End Sub


Voici la question
1- je trouve stupide de devoir ré-ouvrir la base de donnée a chaque fois, il y a pas nu moyen de la garder ouverte quand on change de requête ???

2- si j,ajoute un close, je veisn de me ralentir en maudit, faque, bien que c'est pas excellent, présentement j'écrase ma connection. pas moyen d'améliorer ça, si le numéro 1 peut pas être faite ???

3- la plus importante, ça fonctionne parfaitement présentement, mais après un certain temps je reçoi ceci comme message d'erreur

Exception non gérée : System.Data.OleDb.OleDbException: Erreur non spécifiée
at System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr)
at System.Data.OleDb.OleDbConnection.InitializeProvider()
at System.Data.OleDb.OleDbConnection.Open()
at HeureW.principal.connection() in C:\Documents and Settings\savmax\Mes documents\Visual Studio Projects\HeureW\Form\Principal.vb:line 220
at HeureW.principal.ouvertureRST(String SelectRST) in C:\Documents and Settings\savmax\Mes documents\Visual Studio Projects\HeureW\Form\Principal.vb:line 409
at HeureW.Code_Horaire.Horaire(Int32 numéro, Horaire[] tableau, principal form) in C:\Documents and Settings\savmax\Mes documents\Visual Studio Projects\HeureW\Code Rapport\Code_Horaire.vb:line 77
at HeureW.Code_Horaire.Employe(Int32 numéro, principal form) in C:\Documents and Settings\savmax\Mes documents\Visual Studio Projects\HeureW\Code Rapport\Code_Horaire.vb:line 24
at HeureW.AjoutEmp.XpBouton2_Click(Object sender, EventArgs e) in C:\Documents and Settings\savmax\Mes documents\Visual Studio Projects\HeureW\Form\Employe\AjoutEmp.vb:line 811
at System.Windows.Forms.Control.OnClick(EventArgs e)
at DllBoutons.XpBouton.OnClick(EventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.ComponentManager.System.Windows.Forms.UnsafeNativeMethods+IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at HeureW.principal.Main() in C:\Documents and Settings\savmax\Mes documents\Visual Studio Projects\HeureW\Form\Principal.vb:line 3
The program '[1852] HeureW.exe' has exited with code 0 (0x0).

pourtantle code a déjà été effecture des dizaine de fis dans une boucle, je suppose que mon erreur a rapport a mes 2 première question

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
15 juil. 2004 à 22:03
pourquoi on doit refaire la connection a chaque requête ??? j'ai fouiller encore un peu sur le site, pis a chaque source, il refond la connection, pourtant quand tu es déjà connecter a une BD, pas besoin de renvoyer le login pis le mot de pass a chaque requête SQL, surtout sur la base de donnée temporaier local, sur celle serveur, je peux comprendre, mais pas la local
0
Rejoignez-nous