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

C# Discussion :

Exploiter la fonction Ucase dans une requête SQL construite dynamiquement en C#


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Points : 66
    Points
    66
    Par défaut Exploiter la fonction Ucase dans une requête SQL construite dynamiquement en C#
    Bonjour,

    Je bataille avec une bêtise : je n'arrive à utiliser le mot "ucase" dans ma requête SQL.

    Je construit ma requête en fonction de paramètre saisi à l'écran.

    Sous Visual Studio, l'éditeur ne reconnait pas "Ucase" et je ne trouve pas sur les forums un indice pour m'orienter.

    Je pense que ma syntaxe est incorrect.

    Voici mon code :

    W_RqtSql = "SELECT a.FNOMIN, a.FPREIN, a.FNMRSP, A.FTITRE, C.FTITLL, A.FFONCT , B.FFONLL," +
    " A.FSERVA, D.FSERLL , a.FUSER , A.FSTE, A.FETAB, A.FCHROI FROM " +
    " ADMGFC_DBF.eintrlp a " +
    " Left outer join ADMACS_DBF.SFONCTP B on (A.FFONCT = B.FFONCT) " +
    " left outer join ADMACS_DBF.STITREP C on (A.FTITRE = C.FTITRE) " +
    " left outer join ADMGFC_DBF.SSERVIP D on (A.FSERVA = D.FSERVA) " +
    " WHERE UCASE(A.FNOMIN) Like '%"+(Ucase(@TabString[0]))+"%'" +
    " Or UCASE(A.FPREIN) Like '%"+(Ucase(@TabString[0]))+"%'" +
    " Or UCASE(C.FTITLL) Like '%"+(Ucase(@TabString[0]))+"%'" +
    " Or UCASE(B.FFONLL) Like '%"+(Ucase(@TabString[0]))+"%'" +
    " Or UCASE(D.FSERLL) Like '%"+(Ucase(@TabString[0]))+"%'";

    Merci pour votre coup de main !

    JC

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 203
    Points : 5 798
    Points
    5 798
    Par défaut
    Même si ta question ne concerne pas C#, ça semble plus être un problème SQL.

    Ta syntaxe à l'air correcte

    Tu peux essayer Upper
    https://msdn.microsoft.com/fr-fr/lib...ql.120%29.aspx

    En faite ça dépend de la base de donnée (mysql, postgresql, sql server ...) de la version et de la collation.

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 203
    Points : 5 798
    Points
    5 798
    Par défaut
    En faite je vient de coller ton code, si tu utilise les balises code ça pourrait nous aider à la compression.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    W_RqtSql = "SELECT a.FNOMIN, a.FPREIN, a.FNMRSP, A.FTITRE, C.FTITLL, A.FFONCT , B.FFONLL," +
    " A.FSERVA, D.FSERLL , a.FUSER , A.FSTE, A.FETAB, A.FCHROI FROM " +
    " ADMGFC_DBF.eintrlp a " +
    " Left outer join ADMACS_DBF.SFONCTP B on (A.FFONCT = B.FFONCT) " +
    " left outer join ADMACS_DBF.STITREP C on (A.FTITRE = C.FTITRE) " +
    " left outer join ADMGFC_DBF.SSERVIP D on (A.FSERVA = D.FSERVA) " +
    " WHERE UCASE(A.FNOMIN) Like '%"+(Ucase(@TabString[0]))+"%'" +
    " Or UCASE(A.FPREIN) Like '%"+(Ucase(@TabString[0]))+"%'" +
    " Or UCASE(C.FTITLL) Like '%"+(Ucase(@TabString[0]))+"%'" +
    " Or UCASE(B.FFONLL) Like '%"+(Ucase(@TabString[0]))+"%'" +
    " Or UCASE(D.FSERLL) Like '%"+(Ucase(@TabString[0]))+"%'";
    En C# pour mettre du texte en majuscule tu utilise ToUpper.
    Mais je pense que '@TabString' doit être du code SQL (peut être pour SSRS) plutôt donc si c'est le cas revoit tes "".

  4. #4
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    Merci pour vos conseils.

    J'ai développer le même code sous VB.NET ( voir ci dessous ), et ça fonctionne nickel.

    Le "@" me permet d'insérer des variables dans la requête sous C#. J'ai créer une classe pour y traiter la construction de ma requête, je pense que cela ne gêne en rien.

    Pour info, j'attaque une base DB2/400 ( AS400)

    Voici mon code sous VB.NET :

    W_RqtSql = "SELECT a.FNOMIN, a.FPREIN, a.FNMRSP, A.FTITRE, C.FTITLL, A.FFONCT , B.FFONLL," _
    & " A.FSERVA, D.FSERLL , a.FUSER , A.FSTE, A.FETAB, A.FCHROI FROM " _
    & " ADMGFC_DBF.eintrlp a " _
    & " Left outer join ADMACS_DBF.SFONCTP B on (A.FFONCT = B.FFONCT) " _
    & " left outer join ADMACS_DBF.STITREP C on (A.FTITRE = C.FTITRE) " _
    & " left outer join ADMGFC_DBF.SSERVIP D on (A.FSERVA = D.FSERVA) " _
    & " WHERE UCASE(A.FNOMIN) Like '%" & UCase(TabString(0)) & "%'" _
    & " Or UCASE(A.FPREIN) Like '%" & UCase(TabString(0)) & "%'" _
    & " Or UCASE(C.FTITLL) Like '%" & UCase(TabString(0)) & "%'" _
    & " Or UCASE(B.FFONLL) Like '%" & UCase(TabString(0)) & "%'" _
    & " Or UCASE(D.FSERLL) Like '%" & UCase(TabString(0)) & "%'"


    Je suis preneur de toutes les pistes !

    JC

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 203
    Points : 5 798
    Points
    5 798
    Par défaut
    En C# pour mettre du texte en majuscule tu utilise ToUpper.
    Ceci n'est pas une piste ?

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2003
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 274
    Points : 372
    Points
    372
    Par défaut
    Salut,

    Essaye ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    string W_RqtSql = "SELECT a.FNOMIN, a.FPREIN, a.FNMRSP, A.FTITRE, C.FTITLL, A.FFONCT , B.FFONLL," +
    " A.FSERVA, D.FSERLL , a.FUSER , A.FSTE, A.FETAB, A.FCHROI FROM " +
    " ADMGFC_DBF.eintrlp a " +
    " Left outer join ADMACS_DBF.SFONCTP B on (A.FFONCT = B.FFONCT) " +
    " left outer join ADMACS_DBF.STITREP C on (A.FTITRE = C.FTITRE) " +
    " left outer join ADMGFC_DBF.SSERVIP D on (A.FSERVA = D.FSERVA) " +
    " WHERE UCASE(A.FNOMIN) Like '%" + @TabString[0].ToUpper() + "%'" +
    " Or UCASE(A.FPREIN) Like '%" + @TabString[0].ToUpper() + "%'" +
    " Or UCASE(C.FTITLL) Like '%" + @TabString[0].ToUpper() + "%'" +
    " Or UCASE(B.FFONLL) Like '%" + @TabString[0].ToUpper() + "%'" +
    " Or UCASE(D.FSERLL) Like '%" + @TabString[0].ToUpper() + "%'";

  7. #7
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    Salut eagleleader

    Merci, c'est super ça fonctionne !


    JC

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

Discussions similaires

  1. [PostgreSQL] Utiliser une fonction PHP dans une requête SQL
    Par Toiine dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/11/2014, 13h16
  2. erreur dans une requête sql dans une fonction php
    Par frboyer dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2009, 14h37
  3. Réponses: 3
    Dernier message: 04/01/2009, 22h21
  4. Nom de champ variable dans une requête SQL
    Par stip dans le forum ASP
    Réponses: 2
    Dernier message: 30/09/2004, 19h02
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 19h38

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