IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

probleme d'une simple cote '


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut probleme d'une simple cote '
    bonjour,
    mon code mets a jour une table avec un where ,sauf que la variable que je mets dans le where elle peut prendre une apostroph ( simple cote ) et c# l'interprete ce qui fais qu'il divise tout la ligne en deux et la requet ne fonctionne pas,
    par contre quand cette variable ne contien pas la simple cote c'est a dire une chaine normale , ben ca passe sans souci.l'update reussi .
    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     string ff = e.Keys[@"FiliereDeFormation"].ToString();
     
        SqlDataSource2.UpdateCommand =
        @"UPDATE etablissement SET fiche = '~/pdf/" + Path.GetFileName(file.FileName) + "'" + "where FiliereDeFormation =" + "'"+ff+"'";
    comme vous voyez j'ai essaye de mettre le @ partout pour qu'il interprete pas la simple cote.
    mais ca donne rien .
    pour precesion le souci et dans le where commen faire pour qu'il interprete pas les simple quote quand la variable ff contient une simple quot

    pour precision aussi :
    la variable ff peux prendre une chaine telque :"je suis dotnet"
    > et ca c'est le cas normale.
    et elle peux prendre la valeur : " je suis dot'net "
    > et là ou l'update se plante a cause de cette apostroph


    merci

    CDt

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Utiliser des requetes parametrées!

  3. #3
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    bonjour,
    merci pour la reponse .

    mon code devien comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
         string ff = e.Keys["FiliereDeFormation"].ToString();
    
                SqlConnection sc = new SqlConnection(connectionstring);
                SqlCommand up = new SqlCommand("UPDATE etablissement SET fiche = '~/pdf/" + Path.GetFileName(file.FileName) +
                    "'" + "where FiliereDeFormation =@filiere", sc);
    
                up.Parameters.Add(new SqlParameter("@filiere", SqlDbType.Text));
                up.Parameters["@filiere"].Value = ff;
                sc.Open();
                up.ExecuteNonQuery();            
                sc.Close();

    sauf que ExecuteNonQuery() ne fonctionne pas .
    j'ai raté un quelque chose peut etre !!!! ????

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Le but des requetes parametrées c'est de ne plus faire de concaténations bizarres
    La il t'en reste une avec ton GetFileName!

  5. #5
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    oui ta raison,mais j'ai toujours le meme souci meme aprés la modification de mon code,

    voila le nouveau code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
       string ff = e.Keys["FiliereDeFormation"].ToString();
    
                SqlConnection sc = new SqlConnection(connectionstring);
                SqlCommand up = new SqlCommand("UPDATE etablissement SET fiche = @chemin where FiliereDeFormation =@filiere", sc);
    
                up.Parameters.Add(new SqlParameter("@filiere", SqlDbType.Text));
                up.Parameters.Add(new SqlParameter("@chemin", SqlDbType.Text));
                up.Parameters["@filiere"].Value = Convert.ToString( ff);
                up.Parameters["@chemin"].Value = Convert.ToString("~/pdf/" + Path.GetFileName(file.FileName));
                sc.Open();
                up.ExecuteNonQuery();            
                sc.Close();
    voici l'exception que j'ai pour la ligne en rouge :

    The data types varchar and text are incompatible in the equal to operator.


    ???

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Le message est pourtant clair! Il ne faut pas mélanger Text et VarChar

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    string ff = e.Keys["FiliereDeFormation"].ToString();
    
    SqlConnection sc = new SqlConnection(connectionstring);
    SqlCommand up = new SqlCommand("UPDATE etablissement SET fiche = @chemin where FiliereDeFormation =@filiere", sc);
    
    up.Parameters.Add(new SqlParameter("@filiere", SqlDbType.VarChar)).Value = ff;
    up.Parameters.Add(new SqlParameter("@chemin", SqlDbType.VarChar)).Value = "~/pdf/" + Path.GetFileName(file.FileName);
    sc.Open();
    up.ExecuteNonQuery();            
    sc.Close();

  7. #7
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    oui ,j"ai pas fai a ttention .
    merci

    sauf que cette fois ,oui il y a pas d'erreur mais le changement ne s'effectue pas.
    je verifie au niveau de la base , les champ sont les meme ,
    :s :s
    c'est a dire comme si il prend pas en consideration la reuquet
    alors que c'est une requet update simple,

    c'est bizare
    !!

  8. #8
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Es tu certain de la valeur ff ?

    Et en déclarant les paramètres comme ceci?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    up.Parameters.Add(new SqlParameter("filiere", SqlDbType.VarChar)).Value = ff;
    up.Parameters.Add(new SqlParameter("chemin", SqlDbType.VarChar)).Value = "~/pdf/" + Path.GetFileName(file.FileName);
    sc.Open();
    up.ExecuteNonQuery();            
    sc.Close();
    Tu peux essayer également un LIKE au lieu d'un =

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where FiliereDeFormation LIKE @filiere

  9. #9
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    oui oui, j'ai deja tester le ff , il contient la valeur attendu ,

    je sais pourquoi le update n'abouti pas !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
      string ff = e.Keys["FiliereDeFormation"].ToString();
     
                SqlConnection sc = new SqlConnection(connectionstring);
                SqlCommand up = new SqlCommand("UPDATE etablissement SET fiche = @chemin where FiliereDeFormation LIKE @filiere", sc);
     
                up.Parameters.Add(new SqlParameter("@filiere", SqlDbType.VarChar)).Value = ff;
               up.Parameters.Add(new SqlParameter("@chemin", SqlDbType.VarChar)).Value = "~/pdf/" + Path.GetFileName(file.FileName);
                sc.Open();
                up.ExecuteNonQuery();
                sc.Close();

    c'est vraiment bizar

  10. #10
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    une question qui peux reglé ce souci,

    comment declarer et travaillé avec ces parametrre avec mon ancien code qui fonctionne bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    SqlDataSource2.UpdateCommand =
        "UPDATE etablissement SET fiche = '~/pdf/" + Path.GetFileName(file.FileName) + "'" + "where FiliereDeFormation =" + "'" + ff + "'";

  11. #11
    Membre éclairé
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Par défaut
    voilà souci reglé,


    voicie le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SqlDataSource2.InsertParameters.Add("@filiere",DbType.String,ff);
                SqlDataSource2.UpdateCommand =
        "UPDATE etablissement SET fiche = '~/pdf/" + Path.GetFileName(file.FileName) + "'" + "where FiliereDeFormation =@filiere";
    mais n'oublié pas de declaré le parametre filiere dans la page aspx


    bn courage tout le monde.

    >>> merci Nathanael Marchand

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec une simple fonction
    Par francky57 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/10/2008, 11h01
  2. probleme avec une simple requetes
    Par Babylonne dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/06/2007, 08h59
  3. probleme avec une simple requete
    Par nassimmm dans le forum Langage SQL
    Réponses: 11
    Dernier message: 03/08/2006, 17h46
  4. Ksh, problème avec une simple boucle for
    Par herzleid dans le forum Linux
    Réponses: 4
    Dernier message: 22/03/2006, 14h45
  5. [FreePascal] Problème pour une simple liste chaînée
    Par piff62 dans le forum Free Pascal
    Réponses: 3
    Dernier message: 26/11/2005, 19h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo