Mot de Passe et ID...? hepl me please !! :)

Résolu
cokoboye Messages postés 40 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 11 septembre 2012 - 19 juin 2012 à 11:28
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 - 2 juil. 2012 à 09:24
Bonjour a tous,

Je solicite votre aide car j'ai un petit probleme pour finaliser mon application...
Je tourne sous VS2010 pour mes deux WinForms & SqlServer2008 pour ma base de données,
J'aimerais récupérer le texte des textBox de ma 1ere WinForm dans la 2ème (jusque là tout va bien) pour les affecter dans ma chaine de connexion à la base de données (là aussi pas de Pb), mais voilà VisualStudio initialise par défaut une autre chaine de connexion où je n'arrive pas à affecter mon mot de passe et mon ID donc j'aimerais savoir si c'est possible de supprimer cette connexion par défaut .... vous me suivez ?

Merci pour votre aide précieuse !
Cokoboye

22 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 juin 2012 à 19:51
Le code que tu as fonctionne sans ce type de lien, c'est à peu de chose près celui que j'utilise pour toutes mes connexions ;)
3
cokoboye Messages postés 40 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 11 septembre 2012
20 juin 2012 à 11:47
Ou alors supprimer la chaine de connexion de mon code pour garder celle par défaut et utiliser une propriété que je ne connais pas pour afficher une boite de dialogue login mot de passe....

allé SVP un coup de main
0
clemou01 Messages postés 7 Date d'inscription jeudi 24 mai 2012 Statut Membre Dernière intervention 2 juillet 2012
20 juin 2012 à 12:00
T'as essayé en mettant ta caîne de connxion dans un document XML (.config) que tu appellerais ensuite dans ton code ?
0
cokoboye Messages postés 40 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 11 septembre 2012
20 juin 2012 à 12:21
Oui j'ai essayer, mais en fait même si je fournis un mauvais mot de passe dans mon XML je me connecte quand même à ma base de donnée, car la chaîne de connexion par défaut prend le dessus....et si je supprime cette chaîne de connexion alors là y'a une dizaine d'erreur de type "SqlConnection n'a pas été initialisé"...
0

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

Posez votre question
clemou01 Messages postés 7 Date d'inscription jeudi 24 mai 2012 Statut Membre Dernière intervention 2 juillet 2012
20 juin 2012 à 14:11
Peux-tu poster ton code ?
0
cokoboye Messages postés 40 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 11 septembre 2012
20 juin 2012 à 14:25
private static SqlConnection connexion;
private static string cnxStr;
private DataSet ds;

cnxStr = "Data Source=MON-PC\\SQLEXPRESS;Initial Catalog=MyDB;User ID=sa;Password=MonPassword;";

public SqlConnection GetConnection()
        {
            if (connexion null) connexion new SqlConnection(cnxStr);
            if (connexion.State != ConnectionState.Open) connexion.Open();
            return connexion;
        }
        
        public void CloseConnection()
        {
            if (connexion != null)
                if (connexion.State == ConnectionState.Open)
                    connexion.Close();
        }
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 juin 2012 à 15:00
Salut,

ce code me rappelle quelque chose
Par contre les fonctions ne sont plus static ?

Comment écris-tu dans la variable cnxStr ? Car là elle est définie en private, elle ne doit donc pas être visible en-dehors de ta classe. Et n'oublie qu'une variable static doit être accédée par MaClass.MaVar, et non MonInstance.MaVar.
0
cokoboye Messages postés 40 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 11 septembre 2012
20 juin 2012 à 15:16
oui mais j'ai deux autre variable motPass & ID déclaré en public static string qui me permettent de récupérer les textBox.Text de ma form2 et dans ma form2 j'ai

getMotPass{
get{ return textBoxMotPass.Text;}
}

et getID{
get{ return textBoxID.Text;}
}

donc logiquement tout est bon nan ?
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 juin 2012 à 15:26
Déjà pour être propre et faire un vrai singleton il faut que tes fonctions soient déclarées en static, et pour être encore plus clean, cette classe ne devrait pas contenir de DataSet (et surtout pas en non static). Il faut également que la variable membre cnxStr soit accessible depuis l'extérieur. Pour cela, soit tu la déclares en public soit tu fais un accesseurs (get/set).

Ensuite, tu devrais initialiser la valeur de cnxStr en même temps que tu la définies (ça c'est plus une question d'esthétique).

Enfin, ma question n'était pas "comment récupères-tu les valeurs saisies depuis ton interface", mais "comment modifies-tu la valeur de cnxStr".
0
cokoboye Messages postés 40 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 11 septembre 2012
20 juin 2012 à 15:38
cnxStr = "Data Source=MON-PC\\SQLEXPRESS;Initial Catalog=MyDB;User ID=" + motPass + ";Password=" + ID + ";";
0
cokoboye Messages postés 40 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 11 septembre 2012
20 juin 2012 à 15:39
j'ai inverser les variable ID et motPass...
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 juin 2012 à 15:53
Je pense que ton souci provient de ton archi et/ou d'une méconnaissance du cycle d'exécution de ton appli. M'est avis que t'as fusionné la classe de connexion avec une de tes Form et que ta concaténation n'est faite qu'une fois, et peut-être pas au bon moment. Il faudrait l'ensemble du code pour vérifier ça, mais ça va faire lourd ...
0
cokoboye Messages postés 40 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 11 septembre 2012
20 juin 2012 à 16:19
en effet ça va faire lourd....je vais continuer de creuser, j'ai placé un point d'arrêt dans mon fichier de config Settings.setting, et je vois que la chaine de connexion par défaut s'initialise avant ma chaine de connexion qui se situe dans mon code. Je ne pense pas que ce soit normale...alors comment supprimer cette connection ?
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 juin 2012 à 16:32
Si dans le code tu initialise un attribut lors de sa définition, alors, lors de l'exécution, il est initialiser en même temps que tu instancies la classe qui le contient. Dans le cas d'une classe static avec un attribut static, cela est fait dès le lancement du programme. Mais cela n'empêche pas de modifier sa valeur par la suite.

Par contre, pour le coup, l'utilisation d'un singleton de connexion n'est peut-être pas la meilleure solution, ça risque de foutre le while si tu changes de cnxStr en cours d'exécution.
0
cokoboye Messages postés 40 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 11 septembre 2012
20 juin 2012 à 16:39
Ok mais je sais ça
Je souhaite savoir comment on supprime la connexion XML que Visual Studio initialise lors de l’exécution du programme...
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 juin 2012 à 17:17
Tu entends quoi par "connexion XML" ?
0
cokoboye Messages postés 40 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 11 septembre 2012
20 juin 2012 à 17:22
Je parle de la connexion que visual studio initialise automatiquement...celle qui se trouve dans mon fichier "settings"
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
20 juin 2012 à 17:32
Je n'ai jamais de fichier Settings, je connais pas bien (par contre c'est ta chaine de connexion qui doit y être, pas la connexion elle-même ;))

As-tu utilisé l'interface de VS pour lier ta base de donnée ? Cela pourrait venir d'un truc du genre (je connais pas non plus, je me connecte toujours à la mano sur mes différents SGBD).
0
cokoboye Messages postés 40 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 11 septembre 2012
20 juin 2012 à 17:38
Oui j'ai utiliser l'interface de visual studio pour lier mes données, et je pense aussi que c'est ça qui fout la m**de...comment tu fais pour lier tes données sans l'interface ? as tu un extrait de code ou mieux(un tuto par exemple) ? pour que j'essai de voir si ça fonctionne mieux
0
cokoboye Messages postés 40 Date d'inscription mardi 15 mai 2012 Statut Membre Dernière intervention 11 septembre 2012
21 juin 2012 à 08:57
Ok donc c'est ça en moins déjà
En ce qui concerne les tableAdapters, les dataSets et les bindings je n'ai qu'à m'inspirer de mes "settings" !

Merci pour votre aide les zamis
0
Rejoignez-nous