Bonjour à tous.

voilà mon problème, je fais un programme de gestion des média, pour l'instant il est individuel, c'està dire que j'ai un prog et une base par personne. Je passerais au client serveur quand cette version fonctionnera correctement.

Bref, voici mon problème, je n'arrive pas a avoir un connectionstring qui fonctionne et pour les SQL server et pour les SQL server express.

Car, la subtilité, c'est :
- pour sql on a datasource = Nomduserver
-pour sql express on a Nomduserver\SQLexpress

Alors j'ai essayé de faire un code mais ça ne marche pas.
Et je suppose qu'à chaque fois, le server a le nom du pc.

Voici ce que j'ai fait:

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
Public Sub configconnectionstring()
        Dim key As Microsoft.Win32.RegistryKey = My.Computer.Registry.LocalMachine.OpenSubKey("Software\Médiathèque", True)
        If key Is Nothing Then
            Dim ar As DataTable
            ar = Sql.SqlDataSourceEnumerator.Instance.GetDataSources
            Dim computername As String = My.Computer.Name
            Dim datasource As String = ""
            For Each row As DataRow In ar.Rows
                If row.Item(0).ToString = computername Then
                    If row.Item(1).ToString <> "" Then
                        datasource = computername + "\" + row.Item(1).ToString
                    Else
                        datasource = computername
                    End If
                    Exit For
                End If
            Next
 
            Dim rc As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software", True).CreateSubKey("Médiathèque")
            rc.SetValue("Connectionstring", "Data Source=" & datasource & ";AttachDbFilename=|DataDirectory|\Médiathèque.mdf;Initial Catalog=;Integrated Security=True;User Instance=True")
            ar.Dispose()
        End If
    End Sub
et le problème de cette technique c'est que c'est long...