Faire un connectionstring dynamique.
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:
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...