Accès SQLServer depuis PDA sous WinCE en C# avec liaison WIFI

Résolu
vmontagnon Messages postés 27 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 29 mars 2008 - 30 nov. 2005 à 18:04
belaicher Messages postés 2 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 24 juin 2010 - 22 janv. 2010 à 01:51
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

vmontagnon Messages postés 27 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 29 mars 2008
6 déc. 2005 à 11:01
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.
3
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
1 déc. 2005 à 00:22
Essaye comme çà :
Data Source=192.168.1.117,1433;Catalog=BD_TEST_VMO;User ID=vmo;Password=vmo

::|The S@ib|::
MVP C#.NET
0
vmontagnon Messages postés 27 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 29 mars 2008
1 déc. 2005 à 08:58
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).
0
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
1 déc. 2005 à 10:18
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
1 déc. 2005 à 10:18
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
0
vmontagnon Messages postés 27 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 29 mars 2008
1 déc. 2005 à 10:22
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.....
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
1 déc. 2005 à 10:27
Copie la dll dans le meme repertoire que ton exe pour voir.
0
vmontagnon Messages postés 27 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 29 mars 2008
1 déc. 2005 à 10:44
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
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
1 déc. 2005 à 10:49
La il nous faudra un bout de code ...
0
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
1 déc. 2005 à 11:06
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...
0
vmontagnon Messages postés 27 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 29 mars 2008
1 déc. 2005 à 11:10
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 ?
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
1 déc. 2005 à 11:19
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.
0
vmontagnon Messages postés 27 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 29 mars 2008
1 déc. 2005 à 11:41
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...
0
vmontagnon Messages postés 27 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 29 mars 2008
1 déc. 2005 à 12:00
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();
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
1 déc. 2005 à 12:12
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
0
vmontagnon Messages postés 27 Date d'inscription mardi 29 novembre 2005 Statut Membre Dernière intervention 29 mars 2008
1 déc. 2005 à 14:07
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
0
belaicher Messages postés 2 Date d'inscription mercredi 22 septembre 2010 Statut Membre Dernière intervention 24 juin 2010
22 janv. 2010 à 01:51
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.
0
Rejoignez-nous