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 :

Résultats requête SQL


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Résultats requête SQL
    Bonjour tout le monde,

    J'aimerai récupérer le résultat d'une requête SQL afin de l'envoyer dans un byte[].
    Voilà mon 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
    public Form1()
            {
                InitializeComponent();
     
                SerialPort p = new SerialPort("COM1", 9600, Parity.Even, 7, StopBits.Two);
                p.Open();
                byte[] init = { 0, 0, 0, 0, 0, (byte)']', (byte)'!', (byte)'a', (byte)'0', (byte)'0', (byte)']', (byte)'\"', (byte)'A', (byte)'0', 0x1b, (byte)'&', (byte)'a'};
                byte[] trame = Encoding.ASCII.GetBytes("Hello World !");
                byte[] fin_trame = {(byte)']', (byte)'$'};
                p.Write(init, 0, init.Length);
                p.Write(trame, 0, trame.Length);
                p.Write(fin_trame, 0, fin_trame.Length);
                p.Close();
            }
    J'aimerai ensuite remplacer Encoding.ASCII.GetBytes("Hello World !") par le résultat de ma requête. Merci !

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Bonjour el_payasovitch,

    Pouvez-vous indiquer l'ensemble du code ? Je ne vois aucune requête SQL dans votre code . . .

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    c'est justement ce qu'il veut, le code pour faire une requete sql et récupérer le résultat ^^

    après on pourrait lui dire qu'il suffit de chercher sur google et de lire des cours, mais bon ça parait assez évident ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'utilise un String[] car je vais utiliser une dizaine de requête SQL, donc je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String[] tabRequeteSql = new String[1];
    tabRequeteSql[1] = "select top 3 Coureur.nom, prenom,numeroDossard, Participation.temps from Coureur join Participation on Participation.idCoureur = Coureur.idCoureur join Categorie on Participation.idCategorie = Categorie.idCategorie join Courses on Courses.idCourses = Participation.idCourse where year(Courses.date)=2015 and Participation.temps IS NOT NULL and Categorie.sexe='Masculin' and Categorie.nom='Cadet' order by Participation.temps"
    Mais le problème c'est que je ne sais pas comment mettre le résultat dans un byte[]

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ca ne va pas de sortir des bytes directement
    si les colonnes sont de type (n)varchar alors tu pourras récupérer des string
    et convertir des string en bytes tu l'as déjà dans ton code via Encoding.ASCII.GetBytes

    après il te faut un objet connection, un command et un datareader pour lire le retour (pour sql server c'est system.data.sqlclient.sqlconnection ...)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 149
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Selon le SGBD utilsé (SQL Server probablement) on peut exécuter un lot de plusieurs requêtes : l'avantage c'est que le serveur exécute toutes les requêtes d'un coup, et répond tout d'un coup. C'est bien plus rapide que de faire 10 requêtes à la queue-leu-leu.

    Il suffit d'indiquer les requêtes séparées par des ";" dans le CommandText puis naviguer dans les résultats reçus dans le DataReader en utilisant la méthode "NextResult()".

    Ensuite, pour transformer le résultat de la requête en byte[] il suffit de lire chaque colonne de chaque ligne de chaque résultat, et les accumuler à la suite dans un byte[] (passer par un List<byte> pour qu'il soit plus facile d'ajouter des lignes à la suite).

    Ensuite, pour transformer n'importe quel type en byte[] il y a des méthodes natives, et ça dépend complètement de votre implémentation : l'encoding pour les string, la représentation des byte de poids faible en premier pour les int, etc.
    On ne jouit bien que de ce qu’on partage.

Discussions similaires

  1. [MySQL] Affichage résultat requête SQL dans page HTML comme un tableau
    Par joxbl dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/03/2011, 14h26
  2. Réponses: 2
    Dernier message: 14/03/2008, 17h02
  3. Réponses: 2
    Dernier message: 07/02/2008, 11h45
  4. Réponses: 13
    Dernier message: 28/09/2007, 11h55
  5. résultat requêtes sql
    Par mmb04 dans le forum JDBC
    Réponses: 11
    Dernier message: 22/03/2007, 16h06

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