Bonjour

j'ai beau essayer de trouver une solution, je n'y arrive pas.
Je passe par un environnement ODBC pour mes bases de données (au travail et chez clients).

Depuis WinVista/7/8, le nom des serveurs doit être envoyé dans les registres ODBC comme tel si le nom du serveur possède un '\' : "aaaa\\bbbb"

Le problème, c'est après avoir récupéré ce nom du serveur et que je le mets dans ma chaîne de connexion, ça plante :

sName = "aaaa\\bbbb", Database = "nom_de_la_base"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
string stringconnection = "Driver={SQL Server};Server=" + sName + ";Database=" + sBase + ";Trusted_Connection=True;Uid=leUID;Pwd=lepassword;Connection Timeout = 30";
 
            conn.ConnectionString = stringconnection;
 
            try
            {
                //ouverture connexion sql
                conn.Open();
                //recup du nom de la base active
            }
            catch
            {
                MessageBox.Show("Init_connexion() impossible", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
Je n'ai aucun problème de connexion quand un serveur a un nom sans \.

Donc je me suis dit que c'est parce que le 1er \ est considéré comme spécial (caractère de protection), donc j'ai cherché diverses solutions comme passer par

.replace("\\",@"\")
.replace(@"\\", @"\")
etc etc

Mais je ne trouve aucune solution pour avoir ce résultat : "aaaa\bbbb".

Donc je plante lamentablement quelque soit le cas.