ca ne répond pas directement à ton problème, mais il y a énormément de points noirs dans ton appli, niveau architecture, niveau modèle de données, niveau fonctionnement et ca, en seulement 8 lignes de code. Tu peux zapper mes remarques mais si tu n'y porte pas attention dès maintenant, plus le temps va passer, plus vous risquez d'avoir des problèmes. donc si c'est un projet d'études, c'est le moment de prendre des bonnes habitudes, si c'est dans un environnement professionnel alors c'est critique 
1- stocker le login et le mot de passe en session??? mais tu es fou ?! oh ouuuuiiiii
. le mot de passe est une information critique et ne doit JAMAIS être stocké, surtout pas de façon claire. Quant à stocker en session, c'est mal. Dieu inventa les membership et avec ton Identity, tu peux te trimballer le login de la société, sans avoir à gérer la session. Ici, tu n'as aucune certitude qu'une autre page ne va pas modifier la valeur de ta session. Il ne faut donc pas l'utiliser si possible.(parfois on a pas le choix, ici tu l'as)
2-
string Clause = " where Login = \'" + log + "\' and Mot_Passe = \'" + passwd + "\'";
rien qu'avec cette ligne, ca veut dire que ton appli est une passoire vis à vis du SQL Injection. Il est INTERDIT (bien que possible), de faire des requetes avec des concatenations. Utilises une SQLCommand et des Parameters. t'as déjà le SQLCommand, manque juste les paramètres pour faire ca proprement. Ca changera juste un peu ton code, la logique ne bouge pas, mais surtout ca t'évite qu'un mec puisse formater ta base de données, rien que depuis la fenêtre de login. Imagine, le mec saisi ceci:
login: toto
pwd: '; Delete from T_SOCIETE --
il clique sur le bouton et toi, tu vas faire une requete pour vérifier si le mot de passe est bon et ca donne ceci
Select * From T_SOCIETE WHERE login= 'toto' and pwd=''; Delete from T_SOCIETE --'
deux requetes au lieu d'une
et là, le mec ne pourra pas se loguer mais il peut vider entièrement ta base. tu vois le danger? 
3- visiblement le mot de passe n'est pas crypté en base. Je plains vos clients si c'est vraiment le cas.
4- pour trouver la ligne d'une société, tu la retrouve par rapport à un login et un password??? Les ID et les clés primaires, vous en avez pas? Ici, ca semble à une interface d'admin pour changer le login ou le pwd de connexion pour un compte société donné.
Imagine le cas suivant
User 1 se connecte avec les identifiants
User 2 se connecte avec les memes identifiants
User 1 change le pwd
User 2 essaie ta requete et là, comme le pwd en base est différent de celui en session, ca marchera pas AU MIEUX, et au pire, il risque d'éditer un autre compte. Il FAUT une clé primaire pour chaque table "objet" et il faut se baser sur cette clé. ca doit ressembler à
UPDATE T_SOCIETE WHERE ID=id_societe, ainsi, les utilisateurs se basent sur la même information qui ne bouge jamais
5- pourquoi la variable Clause a une majuscule?? faut être consistant dans la nomenclature d'écriture du code. pareil, soit tout en francais, soit tout en anglais (variables, méthodes, classes, etc.)
6- pour moi ExecuteDataSet te retourne un DataSet à partir d'une requête or tu fais une requete d'update donc ca retourne rien. mais toi, ca semble être une méthode perso, donc peut-on voir le code de cette méthode s'il te plait et surtout faudrait eventuellement trouver un autre nom pour éviter les collisions?
Partager