Bonjour à tous,

Je voudrais faire en sorte que mon application n'exécute
Code : Sélectionner tout - Visualiser dans une fenêtre à part
New SqlConnection(connectString)
qu'une seule fois.

De ce fait, j'ai crée une classe LinkDataBase pour avoir qu'une seule connexion au serveur (singleton) :

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
 
Public Class LinkDataBase
 
    Private connectString As String = "..."
    Private Shared instance As LinkDataBase = Nothing
 
    Private Sub New()
 
        Dim connection As SqlConnection = New SqlConnection(connectString)
 
        connection.Open()
 
        If Not connection.State = ConnectionState.Open Then
            MsgBox("Server connection failure ", MsgBoxStyle.OkOnly, "Status")
        End If
 
    End Sub
 
 
    Public Shared Function GetInstance() As LinkDataBase
 
        If instance Is Nothing Then
            instance = New LinkDataBase()
        End If
 
        Return instance
 
    End Function
End Class
De ce côté la, pas de problème. Cependant, quand je veux faire une SqlCommand, le second paramètre doit être de type SqlConnection sauf que quand je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Dim insert As SqlCommand = New SqlCommand("INSERT INTO ..", LinkDataBase.GetInstance())
il me dit qu'une valeur type LinkDataBase ne peut être convertie en SqlConnection (logique).

Quelqu’un pourrait me dire comment palier ce problème ?

Merci,

Jah