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

Windows Forms Discussion :

comment afficher tout les messages qui ce trouve dans une table sql


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 12
    Points
    12
    Par défaut comment afficher tout les messages qui ce trouve dans une table sql
    Voila mon code permet de récupérer tout les messages d'une base de donnée mysql !

    Le problème c'est qu'il me retourne seulement un messages et non tout les messages qui ce trouve dans ma base ?

    Code de cl_mysql
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Imports MySql.Data.MySqlClient
    Imports System.Data
     
    Public Class cl_mysql
     
        Dim serv, user, pass, database As String
     
        Function lecture(ByVal requet As String)
            serv = "xx.xx.xx.xx"
            user = "xx"
            pass = "xx"
            database = "xx"
     
            Dim cmd As New MySqlCommand
            Dim returnValue As Object
            Dim connect As New MySqlConnection("Database=" + database + ";" _
                         & "Data Source=" + serv + ";" _
                         & "User Id=" + user + ";" _
                         & "Password=" + pass + "")
     
            connect.Open()
            cmd.CommandText = requet
            cmd.Connection = connect
     
            returnValue = cmd.ExecuteScalar
     
            connect.Close()
            Return returnValue
     
        End Function
     
    End Class
    Code dans mon form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
       Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
            Dim db As New cl_mysql
            Dim datee = db.lecture("SELECT date FROM `ChatGestion`")
            Dim pseudo = db.lecture("SELECT pseudo FROM `ChatGestion`")
            Dim level = db.lecture("SELECT level FROM `ChatGestion`")
            Dim message = db.lecture("SELECT message FROM `ChatGestion`")
     
            Me.RichTextBox1.Rtf = "{\rtf1\ansi { \colortbl\red0\green0\blue0;\red153\green153\blue153;\red0\green153\blue0;}\cf1[" + datee + "] \cf0 \cf2 «\cf0" + pseudo + "\cf2» \cf0" + message + "}"
     
            '[21:23:59] «pseudo» oula vive mon francais 
        End Sub

  2. #2
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    ExecuteScalar lit la première colonne de la première ligne de résultat. Pour lire plusieurs lignes ou plusieurs colonnes, il faut utiliser ExecuteReader et lire le DataReader obtenu dans une boucle.
    D'autre part, tu n'as pas spécifié le type de retour de ta fonction... sous quelle forme veux-tu obtenir les résultats ? un liste de chaines ? une seule chaine avec tous les messages concaténés ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    je voudrez pouvoir afficher mais message avec les valeurs différente car je veut mettre des couleurs !

    Exemple :

    [21:23:59] «pseudo» oula vive mon français

    [21:23:59] en gris
    «pseudo» en vert
    oula vive mon français en noir

    Es que tu aurez un exemple car je connais pas trop car je débute est cela ne mais pas évident !

  4. #4
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Il faut récupérer toutes les données dans la même requête, sinon comment tu vas faire le lien entre un message, un pseudo et une date ?

    Il faut faire une requête comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT date, pseudo, message, level FROM `ChatGestion`
    Tu exécutes cette requête avec un DataReader, et tu le lis en boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim reader As MySqlReader = cmd.ExecuteReader()
    While reader.Read()
        Dim datee = reader("date")
        Dim pseudo = reader("pseudo")
        Dim level = reader("level")
        Dim message = reader("message")
     
        Dim rtf = "{\rtf1\ansi { \colortbl\red0\green0\blue0;\red153\green153\blue153;\red0\green153\blue0;}\cf1[" + datee + "] \cf0 \cf2 «\cf0" + pseudo + "\cf2» \cf0" + message + "}"
        RichTextBox1.Rtf = RichTextBox1.Rtf + rtf
     
     
    End While
    J'ai l'impression que tu as quelques lacunes en manipulations de bases de données... je te conseille d'aller faire un tour sur la page cours, il y a plein de tutos

    EDIT: je connais pas trop la syntaxe RTF, mais il me semble que le début ("{\rtf1\ansi") est un en-tête qu'il ne faut ajouter qu'une fois... à vérifier.

    Sinon tu n'es pas obligé de le faire en Rtf, tu peux te débrouiller avec les propriétés SelectedText, SelectionColor, SelectionStart, SelectionLength, etc

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Ton code me retourne rien du tout c'est normal ?

  6. #6
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Mirel Voir le message
    Ton code me retourne rien du tout c'est normal ?
    Comment ça ne "retourne" rien ? ça n'affiche rien dans la RichTextBox ?
    Comme je l'ai dit dans mon message, il faut peut-être modifier la syntaxe RTF, mais je sais pas comment exactement. Essaie plutôt avec les propriétés que je t'ai indiquées, ce sera plus simple

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Aurez tu un tuto sur c'est propriété ?

    Et sur => RichTextBox1.Rtf = RichTextBox1.Rtf + rtf

    si je remplace RichTextBox1.Rtf + rtf par rtf il me donne seuelemnt le premier message et pas les autre !

    Et si j'utilise pas RichTextBox1.Rtf je mais quoi ? RichTextBox1.text ?

  8. #8
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Mirel Voir le message
    Aurez tu un tuto sur c'est propriété ?
    Non, mais c'est pas très compliqué à utiliser :

    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
    Dim reader As MySqlReader = cmd.ExecuteReader()
    While reader.Read()
        Dim datee = reader("date")
        Dim pseudo = reader("pseudo")
        Dim level = reader("level")
        Dim message = reader("message")
     
        RichTextBox1.Select(richTextBox1.TextLength, 0) ' (pour aller tout à la fin)
        RichTextBox1.SelectionColor = Color.Gray
        RichTextBox1.AppendText(String.Format("[{0}]", datee)
        RichTextBox1.SelectionColor = Color.Green
        RichTextBox1.AppendText(String.Format("{0} : ", pseudo)
        RichTextBox1.SelectionColor = Color.Black
        RichTextBox1.AppendText(message)
    End While
    Citation Envoyé par Mirel Voir le message
    Et sur => RichTextBox1.Rtf = RichTextBox1.Rtf + rtf

    si je remplace RichTextBox1.Rtf + rtf par rtf il me donne seuelemnt le premier message et pas les autre !
    Le dernier plutôt, non ?
    Ben c'est logique, si tu fais ça tu remplaces le contenu de Rtf par le résultat en cours, alors qu'il faut l'ajouter à la suite...

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    superbe ! Franchement merci tu ce que tu vient de faire pour moi !

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

Discussions similaires

  1. [Débutant] recuperer 2 valeurs qui se trouve dans une table
    Par chuspyto dans le forum VB.NET
    Réponses: 2
    Dernier message: 06/05/2013, 20h22
  2. Réponses: 5
    Dernier message: 18/03/2009, 19h31
  3. Réponses: 3
    Dernier message: 01/09/2008, 18h34
  4. Exclure tout ce qui ce trouve dans une table
    Par Babssss dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/08/2007, 10h25
  5. [MySQL] Afficher toutes les données d'un champ dans une liste déroulante
    Par Touareg dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 19/03/2007, 12h42

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