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 :

[C# 3.5] Découpage de chaine SQL


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut [C# 3.5] Découpage de chaine SQL
    Salut,

    c'est un sujet qui a du revenir souvent mais je n'ai pas vraiment trouvé de réponse claire.. Je pose donc ici une question sur ce sujet récurrent :

    comment à partir d'une chaine SQL qui aura un formatage toujours égal à :

    ''SELECT (t) AS 'nom' , count(truc) AS 'total' FROM .. etc "

    je peux obtenir une liste des alias de colonnes telle que :

    - Nom
    - total


    Mon idée serait de partir dans des boucles et autre replace... mais je pense que le mieux est une expression régulière.
    Si quelqu'un a bout de code pour faire ça facilement, ce serait très cool : )

    Merci d'avance pour vos réponses,

  2. #2
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Moi j'ai fait ça, mais bon...

    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
    18
    19
    20
     
    public static ArrayList getColumnsFromSQL(string sql)
            {
                ArrayList result = new ArrayList();
     
                string[] t = {"'"} ;
                string[] tParse = sql.Split(t, StringSplitOptions.RemoveEmptyEntries);
     
                int x = 1;
                foreach(string tPar in tParse) 
                {
                    if (x == 2)
                    {
                        result.Add(tPar);
                        x = 0;
                    }
                    x++;
                }
                return result;
            }

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    moi j'aurais fais comme ça, plutôt que de parser la chaine manuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DbCommand cmd = cnx.CreateCommand();
    cmd.CommandText = sql;
    DbDataReader rd = cmd.ExecuteReader(CommandBehaviour.SchemaOnly);
    string[] columns = new string[rd.FieldCount];
    for (int i = 0; i < rd.FieldCount; i++)
    {
        columns[i] = rd.GetName(i);
    }
    (ça suppose d'avoir une bdd à laquelle se connecter, mais si tu manipules du SQL c'est généralement le cas...)

  4. #4
    Membre extrêmement actif
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 144
    Billets dans le blog
    3
    Par défaut
    Oui ma question est finalement pas très pertinente... je suis dans VSTO et j'ai ma requête SQL stockée dans une base locale. La référence de la requête est associée à un ListObject sur ma feuille de calcul, lui même associé à un XmlMap... Donc finalement, c'est idiot, il me suffit de reprendre les colonnes du XmlMap

    Merci pour ta réponse en tous cas.

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

Discussions similaires

  1. Un petit découpage de chaine
    Par Woodgate dans le forum Langage
    Réponses: 2
    Dernier message: 30/12/2006, 15h55
  2. Supprimer la valeur d'un champs access via une chaine SQL
    Par beegees dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/10/2006, 15h20
  3. Pl/Sql , 8i , découpage de chaine de caractères
    Par Youby dans le forum PL/SQL
    Réponses: 5
    Dernier message: 30/05/2006, 00h54
  4. Découpage de chaine
    Par vodevil dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 17h25
  5. Découpage de chaine de caractère
    Par tcharles dans le forum C++
    Réponses: 11
    Dernier message: 23/08/2004, 14h34

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