Non j'ai rien dit, j'ai su le mettre (je débute avec ce programme donc je le connais pas trop lol)
Non j'ai rien dit, j'ai su le mettre (je débute avec ce programme donc je le connais pas trop lol)
du coup quel est la valeur de requete1?
sinon fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 nbrec = new SqlCommand(requete1, myConnexion); LabErrorMsg.Text=requete1; nbrec.Connection.Open();
et lance juste Nb_client()
voilà j'ai testé le contenu de ma requête et il m'affiche bien ma requête avec le nom et prénom entrés donc je comprend vraiment pas
Etant donné que tu a visual studio, pourquoi ne prendrais-tu pas le composant "sqlDataSource" pour que l'assistant puisse t'aider à faire ta requête.
As tu déjà fait cela auparavant ???
Au cas où, le composant sqlDataSource se trouve dans la boîte à outil, dans l'onglet "Données". Après cela, tu utilise l'assistant pour qu'il te crée la requête (ou tu la tape toi même c'est toi qui sait).
Une fois que ta requête est terminée, il faut que tu créé un DataView manuellement pour y insérer tes valeurs.
Je t'enverrai un exemple après manger...
ah oui un exemple serait le bienvenu effectivement parce que j'ai essayé de le faire mais ça ne marche pas car je comprend pas comment je dois lui définir les paramètres de mes champs texte nom et prénom dans ma requête.
Enlève voir le point virgule à la fin de ta requete, cela vient peut être de là.
Ta commande te renvoi le résultat de la dernière requete envoyé.
Le point virgule te permet de cumuler plusieurs requetes. Même s'il n'y a rien après, il y a peut être une réinitialisation de la donnée à renvoyer lorsque command rencontre un point virgule.
J'ai enlevé le point virgule mais il y a toujours le même problème
Me revoilà !! Alors pour commencer attention les yeux, va y'avoir du texte là dessous , il y a cette façon avec l'assistant :
- Tu sélectionne le sqlDataSource et tu le mets sur la page concernée. Ensuite, tu lui donne ta base de données comme il te le demande. Après cela, tu a deux choix avec des radio buttons. Tu choisi le premier qui est "Spécifiez une instruction SQL personnalisée ou un procédure stockée". Dans l'onglet "SELECT", tu choisi le générateur de requête, ensuite tes champs concernés, comme sur access. Jusque là c'est pas très dur. Maintenant, pour ton champ "nom", dans la colonne "Filtrer", tu mets : =@nom. Pour le champ prenom : =@prenom.
Le @ permet de dire que c'est un paramètre. Tu va voir par la suite.
Maintenant, dans la partie où tu peux saisir du texte manuellement, il y aura ceci d'écrit :
Maintenant, si tu clic sur "Exécuter la requête", pour la tester on te demandera deux paramètres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT COUNT(nom) AS nb FROM st_test_table WHERE nom = @nom AND prenom=@prenom
Tu peux ensuite cliquer sur terminer.
La deuxième partie est d'aller dire quels sont les paramètres de ta clause WHERE. Pour cela, il faut que tu sélectionne ton "sqlDataSource" ensuite, dans les propriétés de celui-ci, tu séléctionne la propriété "SelectQuery" et là, une fenêtre s'ouvre où ta requête est affichée et en dessous, une liste des paramètres, ceux que l'on a défini plus haut. Si les paramètres ne sont pas mis, il te faut cliquer sur "Actualiser les paramètres" pour que tu puissent les voir s'afficher. Il te suffit ensuite de sélectionner un paramètre et de lui attribuer sa valeur. Par exemple, comme tu reprends tout depuis des textboxs à première vue, dans la liste déroulante nommée "Source du paramètre :" tu choisi "Control" et dans "ControlID: " tu choisi (dans ton cas) TextNom. Tu fais la même chose pour prénom.
Maintenant ta partie avec l'assistant est terminée .
Il faut encore récupérer tes valeurs. Pour cela, dans le code de ton bouton ajouter, il te faut créer un "Dataview".
Voilà c'est enfin terminé ! il te faut ensuite tester si le int "Existe" est plus grand que 0 pour tes tests !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DataView DV= (DataView)sqlDataSource1.Select(DataSourceSelectArguments.Empty); int Existe= (int)(DV[0].Row["nb"]);
J'espère que ça t'aidera sinon je t'enverrai aussi un exemple d'une création de requête en dur....
Bonne chance !!!!!!
Il faudrait que tu remettes la source que tu as actuellement car avec toutes les modifications que tu as faites, on ne sait plus trop ou tu en es.
J'ai l'impression qu'il manque une quote simple après le prénom ... tu confirmes ...
En ce qui concerne la structure de la requete, je suis plutot d'accord avec keks06.
Il faut éviter de contruire tes requetes directement de cette manière
TxtNom.Text pourrait très bien contenir une quote simple et ta requete pourrait provoquer une exception.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM MATABLE WHERE NOM = '" & TxtNom.Text & "'".
Utilise la méthode de keks06 ou tu peux aussi passer par des SqlParameters pour plus de sécurité.
En fait le problème principal de la requête faite à la main est que si tu passe des caractères irrégulier dans tes textboxs (é, à, ', ", ...) ta requête ne va pas marcher car il faudra faire encore des tests pour voir si tout est cohérent...
Bonne chance !!!
coucou me revoilà
merci kesk06 pour ton exemple, je vais essayer ça tout de suite
Effectivement, il manque un quota après le prénom, je vais remettre le code, ce sera plus simple
* quote pas quota
voilà j'ai suivi ton exemple kesk06 (en tout merci car c'était très bien expliqué )
mais j'ai une erreur au moment de la compilation.
J'utilise visual studio 2008 donc je suppose que le dataview correpond chez moi à DetailsView donc j'ai fait ça
mais j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 DetailsView DV = (DetailsView)SqlDataSource1.Select(DataSourceSelectArguments.Empty); int Existe = (int)(DV[0].Row["nb"]);
"Cannot apply indexing with [] to an expression of type 'System.Web.UI.WebControls.DetailsView' "
désolé c'est en anglais
ah ben avec le 2008 je sais pas mais est-ce que tu a quand même essayé en mettant "Dataview", parce que le DetailsView et le DataView ne se ressemble pas vraiment...
Essaie quand même en mettant "Dataview". je pense pas qu'ils l'auraient supprimé.... Il est tellement pratique...
Voilà ça marche, mon client ne s'ajoute plus en plusieurs exemplaire
impec kesk06, ta méthode était efficace
Un énorme merci à tous pour votre aide
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager