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 :

Formatter requete SQL en c#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 30
    Par défaut Formatter requete SQL en c#
    Bonjour,

    Je me demande si c'est possible de formatter une chaine de caractère en une requete SQL

    par exemple :
    on a
    string query = "select champ1, champ2, champ3 from table where cond";

    j'aimerais avoir

    select champ1,
    champ2,
    champ3,

    from table

    where cond ;

    merci d'avance.

  2. #2
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    tu peut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    string[] motclesqlavant = { "where",  "from" };
                string[] motclesqlapres = { "," };
                string Rsql = "select champ1, champ2, champ3 from table where cond";
                foreach (string cle in motclesqlavant)
                    Rsql = Rsql.Replace(cle, Environment.NewLine + cle);
                foreach (string cle in motclesqlapres)
                    Rsql = Rsql.Replace(cle, cle + Environment.NewLine);
    attention à la case ;

    peut être mieux de trouver une méthode prés définiée qui pourra jouer ce rôle mieux que de faire ça à la main

  3. #3
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    j'ai trouvé un site qui fourni ce service gratuitement

    http://sqlformat.appspot.com/api/

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 30
    Par défaut
    Merci de votre retour, j'ai trouvé une solution plus simple
    vous la trouverez ci -dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     public string PrettyReqDAL(string req)
            {
                TGSqlParser sqlparser = new TGSqlParser(TDbVendor.DbVMssql);
                sqlparser.SqlText.Text = req;
                int i = sqlparser.PrettyPrint();
                if (i == 0)
                {
                    req = sqlparser.FormattedSqlText.Text;
                }
                else
                {
                    req = sqlparser.ErrorMessages;
                }
     
                System.Diagnostics.Trace.WriteLine(req);
                return req;
            }
    lorsque j'affiche dans l'output j’obtiens la requête bien formatée par contre lorsque j'affecte le résultat de cette méthode à un Label ma requête n'est plus formatée
    Avez-vous une idée permettant de remédier à ce problème ?

    Merci.

  5. #5
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    tu peut me donner le référence (library...) de TGSqlParser pour que je puise tester ça

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 30
    Par défaut
    oui bien sur
    gudusoft.gsqlparser.dll

  7. #7
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    ça marche très bien avec label il ajoute bien "\r\n" qui équivalent à la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Environment.NewLine
    envoi le code d'affichage

  8. #8
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2008
    Messages : 231
    Par défaut
    Pour éviter toutes les injections SQL je te conseil d'aller voir ici

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2012
    Messages : 30
    Par défaut
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    using ( ... wcf = new ...())
                    {
                        string testest;
     
                        //la méthode ReqWcf retourne ma requete SQl de type string
                        testest = wcf.ReqWcf(fichier, t);
     
                        //la méthode PrettyReqWcf prend en param la req de type string et la formatte
                        LReq.Text = wcf.PrettyReqWcf(testest);
     
                       //LReq est l'ID de mon Label
                    }

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

Discussions similaires

  1. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31
  2. Prob de requete sql et variable
    Par agent-zaizai dans le forum ASP
    Réponses: 11
    Dernier message: 21/10/2003, 16h54
  3. requete sql
    Par autumn319 dans le forum ASP
    Réponses: 22
    Dernier message: 10/09/2003, 16h46
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

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