OVH Cloud OVH Cloud

problème connexion SQL Server mobile

1 réponse
Avatar
seebRnet
Bonjour =E0 tous !

J'ai un probl=E8me de connexion =E0 ma base de donn=E9es SQL Server Mobile
2005.
En effet, l'ouverture de connexion avec le fichier sdf se passe
apparemment bien mais lorsque je fais un requ=EAte simple du type
"SELECT * FROM PDAOPTION", une sqlServerCE Exception est lev=E9e avec le
message "La table sp=E9cifi=E9e n'existe pas".

Voici en r=E9sum=E9 le morceau de code qui flanche :

System.Data.SqlServerCe.SqlCeConnection connexionBD =3D new
System.Data.SqlServerCe.SqlCeConnection("Data Source=3Dbd.sdf");

if (connexionBD.State!=3DConnectionState.Open)
{
connexionBD.Open();
}

DataSet ds =3D new DataSet();

System.Data.SqlServerCe.SqlCeDataAdapter toto =3D new
SqlServerCe.SqlCeDataAdapter("SELECT * FROM PDAOPTION", connexionBD);

toto.Fill(ds, "RESULTAT");


L'ouverture de la connexion ne fait pas d'erreur et son statut est
ouvert avant l'ex=E9cution de ce code car j'ai v=E9rifi=E9 par un
messageBox et l'exception se fait au niveau du Fill.

Est ce que quelqu'un a une id=E9e et pourrait m'aider ?

Merci

C########
-seebRnet-

1 réponse

Avatar
seebRnet
J'ai finalement trouvé !!

En fait, même si je croyais que l'ouverture de ma connexion à la BD
se passait bien, il y avait un problème. Ce devait être l'émulateur
POCKETPC qui était planté et qui me faisait croire que ça marchait.
Ainsi, ce matin, l'ouverture de la conexion à la BD ne passait et il a
fallu que je change la création de la BD : au lieu de passer seulement
comme paramètre le nom du fichier SDF, il a fallu que je lui passe son
chemin entier (le chemin relatif par rappoort au lancement de l'appli
ne marchait pas). Ainsi, la connexion a vraiment marché et mes
requêtes sont passées.

Pour cela, il faut donc mettre :

System.Data.SqlServerCe.SqlCeConnection connexionBD = new
System.Data.SqlServerCe.SqlCeConnection("Data Source=" +
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAsse mbly().GetName().CodeBase)
+ "bd.sdf" );

Ainsi, cette méthode de refélexion permet de récupérer le nom du
répertoire où s'exécute l'application. On peut ainsi le rajouter en
préfixe du fichier SDF.

Merci quand même !

C######
-seebRnet-