Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2791 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VB .Net Connexion permanante à une base de donées

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VB .Net Connexion permanante à une base de donées

n°1220128
IcemaN_33
Posté le 11-10-2005 à 08:35:55  profilanswer
 

Bonjour à tous,
 
Je suis actuellemetnt en train de concevoir une application sous VB .Net nececitant un accés aux données ( MS SQL server 2000).
 
Pour faciliter l'execution des requetes j'ai créé moi même un objet "SqlQueryObjet" qui se base sur un DataReader
 
La BD de mon application est aussi accessible via une interface web (où elle peut être modifiée) par concequant je ne peu utiliser qu'un mode CONNECTE à la BD afin que l'application soit capable de tenir compte des deernieres modifications.
 
Pour gagner du temps d'Execution je voudrais faire en sorte de connecter mon programme une seule fois à la BD et qu'il reste connecte tout au long de l'éxecution un peu comme un Mysqlpconnect() en PHP.
.
Tout se passe bien à la premiere requete mais c'est à partir de la seconde que je reçoit un message d'erreur:
 
Execute Reader requires an open and available connection. The connection current state is closed.
 
Alors que la premeire requete passe toujours tres bien et que je ne lui ai jamais di de fermer la connection mais de fermer le datareader !
 
Comment faire pour garder la connection ouverte aprés la fermeture du Datareader (si je ne ferme pas le datareader j'ai un message d'erreur "there is already an open datareader associated with this connection wich must be closed first" )
 
Il faut pourtant que je trouve un moyen de rester connecter à la BD car c'est beaucoup trop long de s'y connecter puis de s'en deconnecter avant et aprés chaque requétes mais là rerieusement je séche...
 
Voici mon code source
 
 
Public Class SqlQueryObject
    Private TR As Long
    Private CS As String
 
    Public Function SqlRqst(ByVal request As String) As String()
 
        Dim sqlcmd As New SqlClient.SqlCommand
        Dim reader As SqlClient.SqlDataReader
 
        Dim reponses(0) As String
        Dim i As Integer
 
        sqlcmd.CommandType = CommandType.Text
        sqlcmd.Connection = C 'PB ici a la deuxieme requete
        'The SQL commend is currently Open, Busy, fetching
        sqlcmd.CommandText = request
 
        Try 'Essayons d'executer la requete
            reader = sqlcmd.ExecuteReader(CommandBehavior.CloseConnection)
        Catch ex As Exception 'Oups !
            MsgBox(request & Chr(10) & Chr(10) & ex.Message, MsgBoxStyle.Critical, "Database Error" )
        End Try
        TR += 1 '//augmentation du compteur de requetes
        If reader.HasRows Then 'si il y a des resultats  
            i = 0
            While reader.Read() 'Tant qu'il y a des resultats ds le DataReader
 
                reponses(UBound(reponses)) = reader(0)
 
                ReDim Preserve reponses(UBound(reponses) + 1)
 
                i += 1
            End While
        End If
        Console.WriteLine("SQL: " & request)
        reader.Close()
        Return reponses
    End Function
    Public Function connect()
        C = New SqlClient.SqlConnection(CS)
 
        C.Open()
    End Function
 
    Public Function close()
        C.Close()
    End Function
    Public ReadOnly Property NumberOfRequests()
        Get
            Return TR
        End Get
    End Property
    Public Property ConnectString() As String
        Get
            Return CS
        End Get
        Set(ByVal Value As String)
            CS = Value
        End Set
    End Property
End Class
 
 
Si quelqu'un sait comment contourner le probléme je suis preneur  !
 
Merci d'avance
 

mood
Publicité
Posté le 11-10-2005 à 08:35:55  profilanswer
 

n°1222566
Fred_l
Posté le 13-10-2005 à 22:09:11  profilanswer
 

As tu essayé de mettre en commentaire  reader.Close() ?
Car je me demande si ca ne ferme pas ta connection au passage ...
 
@+


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VB .Net Connexion permanante à une base de donées

 

Sujets relatifs
IP de connexion internet [Résolu]importer données d'une base MySQL dans une autre..Help
Problème de connexion à ma base de donnéesPhpBB et page de connexion
Base de données des viles et des départementsQuel langage pour une appli base de donnée ?
Relier base de données Access et MySQLVotre Obfuscateur .NET?
[PDA][WinCE.NET][VB.NET] controler la luminositée de l'ecran 
Plus de sujets relatifs à : VB .Net Connexion permanante à une base de donées


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR