Bonjour,
J'essaye d'établir une connexion à une base de donnée SQLExpress distante en C# mais l'ouverture de cette connexion échoue.
Voici le code :
L'erreur catchée est la suivante : "SQL Server n'existe pas ou l'accès est refusé.". Auriez-vous une idée de ce qui pourrait faire échouer cette connexion?
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 string strConnexion = "Server=machineTest\\SQLEXPRESS;Database=master;Uid=sa;Pwd=monpassword;"; //string strConnexion = "Server=machineTest\\SQLEXPRESS;Database=matitebase;Uid=sa;Pwd=monpassword;"; ==> ça marche pas //string strConnexion = "Data Source=.\\SQLEXPRESS;Initial Catalog=matitebase;Integrated Security=True;"; ==> Ca marche SqlConnection oConnection = new SqlConnection(); SqlCommand MaSqlCmd = new SqlCommand(); try { oConnection.ConnectionString = strConnexion; oConnection.Open(); Console.WriteLine("yep !"); } catch (Exception el) { Console.WriteLine("L'erreur suivante a été rencontrée :" + el.Message); }
Voici ce que j'ai testé et vérifié :
1 - Test de connexion à un serveur SQL Server express local
Je me suis installé un SQL Server express en local pour tester ce code et ça marche avec la connection string suivante : "Data Source=.\\SQLEXPRESS;Initial Catalog=matitebase;Integrated Security=True;"
Le code de connexion semble donc OK.
2 - Test de connexion à un serveur SQL Server express à distance
J'ai installé un SQL Server express sur une machine machineTest. Au début quand je l'ai installé, j'étais en authentification Windows. J'ai donc modifié les propriétés de mon serveur pour le mettre en mode d'authentification mixte. (j'ai redémarré le serveur).
Le compte sa est donc actif. Il gère les bases master, ... mais pas ma base perso "matitebase". Je sais pas pourquoi j'arrive à pas à ajouter sa dans la liste des utilisateurs de "matitebase".
Je pingue la machine machineTest sans problème.
Sur machineTest, j'ai désactivé le firewall pour être sûr que rien ne vienne bloquer les transactions entre les 2 machines.
Dans SQL Server Surface Area Configuration, j'ai activé les connections locales et à distance en utilisant le mode TCP/IP (dans le menu SQLEXPRESS/Database Engine/Remote Connections). SQL Server Browser n'est pas activé.
aUrais-je oublié quelque chose? fait une erreur de manip?Auriez-vous d'autres pistes? Où pourrais-je chercher?
Partager