Connexion à sql server compact 2008

Reda_totti Messages postés 46 Date d'inscription samedi 7 septembre 2013 Statut Membre Dernière intervention 8 mars 2015 - Modifié par Reda_totti le 1/02/2014 à 20:25
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 3 févr. 2014 à 16:12
Bonjour,
je voulais me connecté a une base de données "MyDatabase#1.sdf " et dés que je lance l'Evénement il me donne une erreur de l'ouverture de connexion;
voila le code que j'utilise, la bibliothèque syteme.data.sqlclient est déja ajouté :

Dim cnxsql As New SqlConnection("Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\C:\Users\RED\Desktop\Nv C2G PRJ\MyDatabase#1.sdf;Persist Security Info=False;"))

Dim com As New SqlCommand
cnxsql.Open()
com.Connection = cnxsql
cnxsql.close()
Coridialement

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 févr. 2014 à 21:34
Salut

Manque de précision :
- Si tu as un code d'erreur, précise-nous lequel et sur quelle ligne.
- Ta connexion semble utiliser des paramètres liés à l'application. Es-tu sûr que le format soit correct ?
J'en doute - "System.IO.Path.GetDirectoryName" va te fournir un chemin auquel tu vas ajouter un 'truc' qui commence par "\\C:\Users\RED\Desktop..." : Je suis certain que le résultat de la concaténation des deux ne donnera pas une syntaxe valide.

Avant de vouloir te connecter, définis proprement la chaine de connexion.
Une fois que tu auras affiché et vérifié la syntaxe, alors donne-la à ta syntaxe de connexion.

Là aussi, le format me parait bizarre :
Dim xxx As New SqlConnection
suivi immédiatement d'une parenthèse : jamais testée, mais ça me parait bizarre.
0
Reda_totti Messages postés 46 Date d'inscription samedi 7 septembre 2013 Statut Membre Dernière intervention 8 mars 2015
1 févr. 2014 à 22:13
Salut,
je ne suis pas certain du format ni de Syntaxe, car je ne suis que débutant en programmation.
bon, l'erreur est comme suite : au niveau de cnxsql.open()
Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (provider: SQL Network Interfaces, error: 26 - Erreur lors de la localisation du serveur/de l'instance spécifiés)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
Modifié par cs_Jack le 2/02/2014 à 03:19
Chaines de connexion : voir ce site de référence :
http://www.connectionstrings.com/

La question est : Que donne le contenu de ta chaine de connexion ?
Que vaut
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase
avant de lui affubler le restant ?

Tes parenthèses sont-elles au bon endroit ?
...

C'est à toi de vérifier chaque détail.
0
Reda_totti Messages postés 46 Date d'inscription samedi 7 septembre 2013 Statut Membre Dernière intervention 8 mars 2015
Modifié par Reda_totti le 2/02/2014 à 15:33
Bonjour,
j'ai essayer de tous vérifie mot par mot et de faire plusieurs tentative, je ne sais pas est ce que ça provient d'un défaut de syntaxe ou de configuration du SQL Server;
j'utilise SQL server compact 2008 pour me connecté a une base de données qui se trouve dans ce chemin :
C:\Users\RED\Desktop\Nv C2G PRJ\MyDatabase#1.sdf
la chaine de connexion obtenue est :
Data Souce =C:\Users\RED\Desktop\Nv C2G PRJ\MyDatabase#1.sdf
l'erreur est dans l'ouverture de la connexion : cnxsql.open()
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
3 févr. 2014 à 16:12
Chez moi, la syntaxe que tu utilises ne renvoie pas ce genre de chaine.
Chez moi,
Console.WriteLine (System.IO.Path.GetDirectoryName
(System.Reflection.Assembly.GetExecutingAssembly().
GetName().CodeBase)
me renvoie
file:\D:\VB Appli Net\Projects\WindowsApplication2
\WindowsApplication2\bin\Debug
Je vois mal comment ça pourrait ressembler à ce que tu nous montre.

Tu dis que la chaine oibtenue est
Data Souce =C:\Users\RED\Desktop\Nv C2G PRJ\MyDatabase#1.sdf
Bizarre que cette syntaxe ait un espace avant le = puisqu'il n'y en a pas dans ton code.
Donne les vraies infos, sinon, on parle pas de la même chose et ça va être galère.

Si tu as visité le site dont je t'ai fourni le lien, tu auras vu que ta syntaxe diffère de celle recommandée.
Exemple : "Data Source=" doit normalement recevoir le nom de la machine (u l'IP ? hébergeant la base, et le nom de la base se palce après la balise "Initial Catalog=".
As-tu testé ?

Et puis un fichier ".sdf", ça ne ressemble pas à une base de donnée SQL Server qui devrait être un ".mdf".
Es-tu sûr ?
0
Rejoignez-nous