begin process at 2012 05 28 01:55:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ASP & ASP.NET

 > 

Archives ASP & ASP.NET

 > 

ASP.net

 > 

probleme execution d'une requete SELECT (tres bizarre :S)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme execution d'une requete SELECT (tres bizarre :S)

jeudi 16 mars 2006 à 10:09:40 | probleme execution d'une requete SELECT (tres bizarre :S)

silverseb

bonjour,
j'ai un probleme tres etrange j'ai beau cherché je ne comprend pas ce qu'il se passe. je m'explique J'ai une fonction rendID qui retourne un entier correspondant a l'identifiant d'un enregistrement d'une table
voici le code de la fonction :

Private Function rendID(ByVal nom As String, ByVal type As String) As Integer
        Dim cnx As Data.SqlClient.SqlConnection
        Dim cmd As Data.SqlClient.SqlCommand
        Dim reader As Data.SqlClient.SqlDataReader
        Dim ID As Integer
        cnx = New Data.SqlClient.SqlConnection("Data Source=MANET;Initial Catalog=Intranet;User ID=InternetSQL;Password=m@deo")
        cnx.Open()
        cmd = cnx.CreateCommand
        If type = "mode de commercialisation" Then
            cmd.CommandText = "SELECT * FROM [PM0029_ModeDeCommercialisation] WHERE libelleModeComm ='" & nom & "'"
            reader = cmd.ExecuteReader
            While reader.Read = True
                ID = CType(reader("IDModeComm"), Integer)
            End While
            LErreur.Text &= "<br>rendID : SELECT * FROM [PM0029_ModeDeCommercialisation] WHERE libelleModeComm ='" & nom & "'"
        ElseIf type = "option1" Then
            cmd.CommandText = "SELECT * FROM [PM0029_Option1] WHERE nomOption1 ='" & nom & "'"
            reader = cmd.ExecuteReader
            While reader.Read = True
                ID = CType(reader("IDOption1"), Integer)
            End While
            LErreur.Text &= "<br>rendID : SELECT * FROM [PM0029_Option1] WHERE nomOption1 ='" & nom & "'"
        Else
            cmd.CommandText = "SELECT * FROM [PM0029_Option2] WHERE nomOption2 ='" & nom & "'"
            reader = cmd.ExecuteReader
            While reader.Read = True
                ID = CType(reader("IDOption2"), Integer)
            End While
            LErreur.Text &= "<br>rendID : SELECT * FROM [PM0029_Option2] WHERE nomOption2 ='" & nom & "'<br>"
        End If
        reader.Close()
        cnx.Dispose()
        cnx.Close()
        LErreur.Text &= " Return" & ID & "<br>"
        Return ID
    End Function


les tables ModeDeCommercialisation et Option1 n'ont que 2 champs ID et libellé et il n'y a pas de probleme. Par contre la table Option2 a 3 champs ID, libelle et nbPoste.
Le probleme c'est que quand nbPoste n'est pas null le ID retourné est toujours 0 .
Voici ce qu'il y a dans ma table Option2

nomOption2 nbPoste IDOption2
Réseau monoposte 1 1
Réseau 2 postes 2 2
Réseau 4 postes 4 3
Réseau 8 postes 8 4
Réseau 16 postes 16 5
aucune option NULL 7

Ca marche quand nom='aucune option' et pas pour les autres, j'ai fais un test en enregistrant une option avec un nbPoste null et, ca marche aussi donc ca viendrait du nbPoste qui n'est pas null mais pourquoi ??? Je ne comprend vraiment pas parce que la requete est bonne.
Aider moi svp merci
jeudi 16 mars 2006 à 13:49:54 | Re : probleme execution d'une requete SELECT (tres bizarre :S)

Yopyop

Réponse acceptée !
salut,

je suis pas sûr mais je me demande si le problème ne viendrait pas du "é" de Réseau
il se peut que la valeur de ta variable "nom" ne soit pas "Réseau", mais "Reacute;seau" (les paramêtres sont encodés en html).

Il faut également (suivant la base de données que tu utilises) faire attention aux majuscules minuscule.

Essaie de "forcer" la valeur de "nom" pour tester.

yopyop
jeudi 16 mars 2006 à 14:05:13 | Re : probleme execution d'une requete SELECT (tres bizarre :S)

silverseb

C'est bien ça c'est à cause du "é" !!! merci

comment fait -tu pour forcer la valeur de nom ?

jeudi 16 mars 2006 à 14:34:15 | Re : probleme execution d'une requete SELECT (tres bizarre :S)

Yopyop

re,

ce que je ne comprends pas, c'est pourquoi tu utilises le nom et pas directement l'id ?

mais bon...

concernant le "é" il n'y a pas (à ma connaissance) de fonction inverse, il faut faire un replace au cas par cas nom.replace("eacute;","é")<- pas sûr du "eacute;".

Autrement, tu peut ajouter :

<pages validateRequest="false" />

Dans ton web.config dans:

<system.web>

</system.web>

Cela aura pour effet de ne pas faire de Server.HTMLEncode (entre autres) automatique et ton "é" restera un "é".
Mais il faudra bien tester toutes tes pages (si un utilisateur entre "<br>" dans une textbox (par example), et que tu réaffiches cette valeur sur une page web, les "<" et ">" ne seront plus remplacés par leur équivalents encodés.
Cela peut poser problème (imagine que quelqu'un entre un javascript, et bien il sera exécuté lors de l'affichage).

C'est pourquoi, lorsque j'utilise
<pages validateRequest="false" />
J'affiche toujours mes valeurs via Server.HTMLEncode par la suite.

Donc, pour résumer (c'est ma méthode perso pour les champs de type String):
- mettre <pages validateRequest="false" /> dans le web.config (cela empêche l'encodage des paramètres)
- lorsque je sauve dans la base je fais .Replace("'","''")
- lorsque j'affiche à l'écran j'utilise Server.HTMLEncode (mais pas toujours...)

Mais, encore une fois, je te conseille de passer directement par les id plutôt que par les libellés.

yopyop

jeudi 16 mars 2006 à 14:50:21 | Re : probleme execution d'une requete SELECT (tres bizarre :S)

silverseb

Je passe par le nom parce que le but de la fonction est justement de retourné l'ID, si j'avais l'ID j'aurais besoin de cette fonction :p. j'ai trouver une solution pour mon problème j'utilise une procédure stockée comme ca il n'y a pas de probleme d'accent.
Merci de m'avoir aidé et bonne continuation



Cette discussion est classée dans : select, id, cnx, cmd, reader


Répondre à ce message

Sujets en rapport avec ce message

ExecuteNonQuery ne marche pas avec une requete Insert ou update "très urgent" [ par zoung_ous ] </P comment ajouter des donnees a ma table "tres tres urgent" [ par zoung_ous ] <TABLE id=HB_Mail_Container height="100%" cellSpacing=0 cellPadding Paramètres de procédure stockée "perdus" ? [ par jo1975 ] Sur une page asp (pas asp.net), je voulais remplacé des requêtes par une procédure stockées dans SQL Server, mais à l'éxécution, j'ai une erreur qui c plusieurs Boutons dans 1 gridview c# [ par Sabine25 ] Bonjour,voilà j ai créé un gridview en ASP et j y ai mis 2 buttonfield: Un pour supprimer, un pour mettre à jour!J utilise pas la DeleteCommand, parce Problème de liste [ par ellandebasque ] Bonjour, j'ai un problème pour ajouter des éléments dans une collection : tous les éléments sont égaux. Grâce au débogueur (pas-à-pas) j'ai constat&#2 EVITER DOUBLONS lors d'insertion de données [ par issousam ] Bonjour,je voudrais savoir comment eviter la redondance de données dans ma table lors d'INSERT.J'ai essayé en definissant une contrainte d'unicité UNI erreur max_user_connections [ par axelle_ax ] Bonjour,Je développe actuellement un site web asp.net qui se conn requete de selection a deux criteres [ par saadouli7 ] j'ai une probleme lors de l'execution de ma requete de selection . mon code est le suivant cnxstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Use Affecter le résultat (unique) d'un select à une variable [ par sergentrazor ] Bonjour à tous, Je rencontre un petit soucis: Utiliser un AccessDataSource pour remplir un gridview ne me pose pas de difficultés. Là ou ça se cors Exploiter les résultats d'une requête select. [ par BountyHunter87 ] Bonjour à tous et à toutes.Voilà, cela fait deux jours complet que je bloque sur un truc, je vaiss essayer d'être le plus préçis possible dans mes exp


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,967 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales