Comment afficher le résultat d'une requête dans un champs texte asp.net

Signaler
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
-
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010
-
Bonjour,

Je suis débutant en asp.net malgrès quelques lagunes de débutant j'ai réussi à faire ma requete pour afficher le numéro automatique mais voilà comment faire pour afficher le résultat dans un champs texte, c'est surrement tout bête mais bon je n'y arrive pas.
Voilà la requete :



'recuperation du champ numero [Id incident] qui est un num‚ro atomatique



Dim SQLUpdateincident
As
String =
""



Dim valeurId
As
String



Dim MaConnexion =
""


SQLUpdateincident &=
"DECLARE @[Id incident] int;"


SQLUpdateincident &"[Id incident] @@IDENTITY;"


SQLUpdateincident &=
"SELECT @[Id incident] From INCIDENTS;"



' La valeur contenue dans ValeurID est le Num‚ro de l'Id du nouvel Incident


valeurId = myCommand.ExecuteNonQuery()

J'ai un champs textID qui doit afficher le numéro automatique mais voilà comment faire.
Je croyais que faire textid.text.value = "" ca marchai mais non. Quelqu'un peut m'expliquer?

17 réponses

Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010

J'ai trouvé voilà :


TextID.Text = valeurId

Mais j'ai un problème le résultat m'affiche toujours 1 or ce nombre est au moins 174 vus que le dernier n° id est 173 j'ai donc modifier ma requete :


SQLUpdateincident &=
"Select max [Id incident] From INCIDENTS;"

Mais toujours 1 je sais bien que n°1 c'est bien mais moi c'est 174 qu'il doit afficher que faire?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
C'est normal : ExecuteNonQuery va te retourner le nombre de ligne affecté par ta requete (utile lorsqu'on fait des updates/delete) si tu veux recuperer seulement une valeur tu dois faire un ExecuteScalar qui te retournera la premiere colonne de ta premiere ligne, dans ton cas tu as qu'une seule ligne et qu'une seule colonne ca tombe bien :-)

pour recuperer toutes les lignes il faudrais passer par un ExecuteReader


<HR>
Cyril - MVS - MCP ASP
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010

Tu pourrai m'expliquer la démarche à faire, merci

Il faut mettre ExecuteScalar à la place de SQLUpdateincident?
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010

Je me suis trompé g pas remplacé SQLUpdateincident par ExecuteScalar mais ExecuteNonQuery par ExecuteScalar. Le problème maintenant c'est que je n'ai plus rien d'afficher dans la zone texte textID, faut faire une autre démarche?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Remplace cette ligne
valeurId = myCommand.ExecuteNonQuery()
par
valeurId = myCommand.ExecuteScalar


<HR>
Cyril - MVS - MCP ASP
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010

En mettant valeurId = myCommand.ExecuteScalar, je n'ai plus rien d'afficher c'est bizarre :
Voilà le code modifier :



'recuperation du champ numero [Id incident] qui est un num‚ro atomatique



Dim SQLUpdateincident
As
String =
""



Dim valeurId
As
String



Dim MaConnexion =
""


SQLUpdateincident &=
"DECLARE @[Id incident] int;"


SQLUpdateincident &"[Id incident] @@IDENTITY;"


SQLUpdateincident &=
"Select max [Id incident] From INCIDENTS;"



' La valeur contenue dans ValeurID est le Num‚ro de l'Id du nouvel Incident


valeurId = myCommand.ExecuteScalar


TextID.Text = valeurId
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010

Voilà ce que ca donne
Votre incident a bien était enregistré. N° ID Incident à noter
la case textid est vide
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
T'es sur que ta requete SQL retourne bien le bon résultat car la j ene vois rien qui cloche !


<HR>
Cyril - MVS - MCP ASP
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010

ok je vais la tester sous access
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010

J'ai testé la requete, j'ai selectionner la table INCIDENTS et j'ai fait une requete avec [Id incident] et j'ai selectionner le max et voilà ce que acess à afficher en SQL :

"SELECT Max([Id incident])FROM INCIDENTS;"
T'es sure que c'est SQLUpdateincident qu'i faut mettre?
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010

J'exécute déjà une requete pour insérer l'incident. Il faut peut etre rebommer mycommand pour la 2eme requete?

Voilà la 1ere :


GetConnection()



'Permet d'ajouter un incident dans la base de donn‚es en transm‚tant les infos de la page vers la BDD



Dim strSQL
As
String =
"INSERT INTO INCIDENTS(Date_ouverture,Description_incident,Id_theme,Id_service,Utilisateur) values('" & _


Now() &
"','" & desc &
"'," & DropDownListTheme.SelectedItem.Value &
"," & RadioButtonListService.SelectedItem.Value &
",'" & txtUtilisateur.Text &
"')"



Dim myCommand
As
New OleDbCommand(strSQL, myConnection)


myCommand.ExecuteNonQuery()
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010

Même en changeant y'a rien c'est vide pour tester la rester la requete on fait un debug.print mais ca marche comment. Sinon il faut peut être remetre le chemin de la base


AccessDataSourceTheme.DataFile =
"~/App_Data/GIT.mdb"
J'ai essayé mais rien, il faut peut etre changé AccessDataSourceTheme.DataFile?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
J'ai jamais parlé de SQLUpdateincident etc...


Dim myCommand
As
New OleDbCommand("select * from incidents" , myConnection)


textbox1.text = myCommand.ExecuteScalar()

et la tu verras la premiere donnée de la premiere ligne, aprés pour tes requetes sql j'ai pas regardé, mais si c'est la qu'est le problème il vaudrais mieux aller voir sur www.sqlfr.com :) (et en plus je suis vraiment nul en sql, encore plus sur des trucs access :p)

et pour tester la requete tu peux aller dans access il me semble qu'il y a un truc ou l'on peut voir le résultat de la requete


<HR>
Cyril - MVS - MCP ASP
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010

ok je vais tester pour les autres requêtes ca marche t'inkiette pas
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010

Ecoute merci pour ta requête mais même au lancement de ma page il me met textID.text ="1" il me fait quoi là :(
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Si tu fais avec ma requete c'est normal ! puisque ma requete retourne 1, met si tu modifies ma requete ca devrait etre bon ! je ne vois pas de raison !


<HR>
Cyril - MVS - MCP ASP
Messages postés
70
Date d'inscription
mercredi 7 décembre 2005
Statut
Membre
Dernière intervention
9 juillet 2010

Merci ca marche,

Je vais faire la fête ca fait 3 jours que je suis dessus youpy :)