Accès SQLServer depuis PDA sous WinCE en C# avec liaison WIFI [Résolu]

Signaler
Messages postés
27
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2008
-
belaicher
Messages postés
4
Date d'inscription
mercredi 22 septembre 2010
Statut
Membre
Dernière intervention
22 septembre 2010
-
Bonjour,





Je tente vainement depuis hier de me connecter sur une base SQLServer depuis un PDA Psion sous Windows CE .Net.


Je fais ça en C#. Lorsque je fais une appli pour une connexion en
local, pas de soucis, par contre dès que je le fais depuis un pda
distant en liaison WIFI, j'ai le message


"TypeLoadException

Could not load type

System.Data.SqlClient.SqlConnection from assembly System.Data.SqlClient,

Version =1.0.5000.0, culture=neutral,

Public keytoken=blablablabla........"





J'utilise le code suivant :





private void button1_Click(object sender, System.EventArgs e)

{

SqlConnection oSQLConn = new SqlConnection();


oSQLConn.ConnectionString="Data Source=192.168.1.117,1433;Network
Library=DBMSSOCN;Initial Catalog=BD_TEST_VMO;User ID=vmo;Password=vmo;";


//oSQLConn.ConnectionString="Data Source=DDH9FV1J;Initial
Catalog=DB_TEST_VMO;Integrated Security=SSPI;";

oSQLConn.Open();


MessageBox.Show("STATUT DE LA CONNEXION : " + oSQLConn.State.ToString()
);

oSQLConn.Close();

}



Si quelqu'un a une idée, je suis preneur, merci......

17 réponses

Messages postés
27
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2008

Me revoila!



Donc je confirme, il fallait bien installer sur le PDA un ficher cab qui se trouvait sous

%Program Files%\Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\wce400



Plus précisemment, celui correspondant à l'architecture ARMV4 ou ARMV4T
(pour les PSION Workabout Pro), ensuite tout marche pour le mieux.
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
14
Essaye comme çà :
Data Source=192.168.1.117,1433;Catalog=BD_TEST_VMO;User ID=vmo;Password=vmo

::|The S@ib|::
MVP C#.NET
Messages postés
27
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2008

Merci, mais pas mieux.

Quelques précisions : comme j'ai suspecté un soucis sur la version .net
de mon PDA, j'ai recompilé pour un autre PDA sous PocketPC2003.... et
j'ai le même résultat.

A mon avis ça vient donc de la façon dont je compile ou déploie
l'application, à moins que ce ne soit lié à la base, mais cela
m'étonnerait quand on voit le message d'erreur.



Pour compiler, je rajoute dans mon projet une référence à la dll

"C:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\System.Data.SqlClient.dll"

Je copie également cette dll sur le pda ( dans le répertoire où je place l'application).
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
7
Est ce que tu lance ton application "a la main" ? ou elle est démarrée
par un service ou autre ? (dans ce cas, il faut peut être mettre la
SqlClient.dll ailleur...) En tout cas l'erreur ressemble effectivement
à celle que tu aurai si tu lancais ton appli sans la dll SqlClient...
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
14
Ton PDA n'a pas CPU particulier ? Si c'est le cas regarde dans le repertoire :
%Program Files%\Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\wce400
Messages postés
27
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2008

L'application est lancée "à la main".



Pour valider le fonctionnement de SQLServer, je viens de réaliser des
connexions depuis un portable XP en liaison Wifi (avec le même code
c#).... et ça marche.

Donc le problème semble bien être lié à la dll.....
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
14
Copie la dll dans le meme repertoire que ton exe pour voir.
Messages postés
27
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2008

J'ai copié le fichier system.data.sqlclient.dll (et xml) dans le
répertoire et j'obtients...... un changement de message d'erreur !



Error

TestWifiDB.exe

ArgumentException

Could not find ressource assembly



Application::Run+0xf

Form1::Main+0xa



Pour info, le PDA fonctionne avec un XSCALE PXA 255 @400MHz et sous

%Program Files%\Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\wce400
il n'y a des .cab que pour installer SQLServerCe et un vsd_setup.dll
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
14
La il nous faudra un bout de code ...
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
7
Est ce que la dll en question ne serait pas présente sur le PDA (y'a
pas un répertoire Framework ?). Je ne sais pas si la dll que tu a copié
fonctionne aussi sur ton PDA... En tout cas c'est étrange que VS ne te
copie pas la dll avec ton exe lorsque tu compile, alors qu'elle est
dans tes références...
Messages postés
27
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2008

je veux bien mettre le code à dispo, mais il n'y a rien de sorcier, je
créé un nouveau projet smartdevice, je référence les dll liées aux
machines Psion et j'ajoute une référence pour la dll (C:\Program
Files\Microsoft Visual Studio .NET
2003\CompactFrameworkSDK\v1.0.5000\Windows
CE\System.Data.SqlClient.dll).

Sur mon formulaire, je créé un bouton et je définis le code donné
ci-dessus (cf premier message) sur l'événement clic du bouton. J'ai
pris soin d'ajouter un "using System.Data.SqlClient;" au début du
fichier source.



Compilation et déploiement sur le PDA par activesync.... et c'est tout :-<



donc le même code fonctionne sur un PC.net



Comment je peux vous mettre à dispo le zip du projet ?
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
14
En fouillant un peu sur le net, je vois que le problème pourrait venir du fait que la DLL suivante System.SR.dll serait absente sur ton pocket. Cette dll s'occupe des message d'erreur. Ajoute la en réference ou copie là à la mano sur ton ppc.
Messages postés
27
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2008

Bon je commence à criser sérieux.....

Le message d'erreur devient



MissingMethodException



Il est déclenché lors de l'ouverture de la connexion (oSQLConn.Open();)

Pour info, si ma chaine de connexion est vide, ou comporte des
erreurs du type (Data sorce), c'est bien détecté et le programme
s'arrête avant l'ouverture de la connexion....



Merci en tout cas de votre aide...
Messages postés
27
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2008

Compléments d'information :



J'ai ajouté les lignes de code suivantes entre l'initialisation de la connectionstring et l'ouverture de la connexion :



MessageBox.Show(oSQLConn.WorkstationId.ToString());


MessageBox.Show("STATUT DE LA CONNEXION : " + oSQLConn.State.ToString()
);

MessageBox.Show(oSQLConn.ConnectionString.ToString());

MessageBox.Show(oSQLConn.Database.ToString());

MessageBox.Show(oSQLConn.DataSource.ToString());



Elles se déroulent sans problème et m'affichent les bonnes donnnées, par contre dès que je veux ouvrir la connexion, boum !!



oSQLConn.Open();
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
14
Le psion a quoi comme cpu ?
Du arm ? x86 ?

Je reitère mon idée sur le fait que le cab que tu installes n'est pas le bon pour ton ppc.

%Program Files%\Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\wce400
Messages postés
27
Date d'inscription
mardi 29 novembre 2005
Statut
Membre
Dernière intervention
29 mars 2008

TheSaib, tu avais raisons, je vais devoir te faire une statue .

C'est effectivement lié à un problème de compatibilité de dll par rapport au microprocesseur !



Je valide toute la chaine et je poste un message avec le détail pour
ceux qui auront les mêmes soucis que moi .... ça peut servir !



Merci à tous
Messages postés
4
Date d'inscription
mercredi 22 septembre 2010
Statut
Membre
Dernière intervention
22 septembre 2010

bonjour je suis un nouveau ..
votre discussion me parait très utile parce que moi aussi je suis entrain de réaliser un petit projet personnel mais j'accède a sql avec mon PDA a travers un webservice .... alors sa sera très intéressant de le faire directement comme ca je peux gérer les transaction multiple sur mon PDA , Mr vmontagnon je vous prie de me dire c quoi le nom du fichier cab que vous avez installer sur votre PDA pour faire fonctionner SQL la dessus.
En Fait j'utilise le visual studio 2005 alors le framework 2.0 SP1 sur mon PDA.

je vous remercie tout d'abord.