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

VB.NET Discussion :

Afficher les données d'une requête dans un composant


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Points : 20
    Points
    20
    Par défaut Afficher les données d'une requête dans un ListView
    Bonjour bonjour

    Je travaille sous Visual Studio 2005, et je voudrais faire apparaître les données d'une requête dans un composant du style ListView...

    Le souci c'est que je n'arrive pas à "transférer" ces données dans ces composants pour les faire apparaître. Est-ce que vous pourriez me donner une astuce ?

    Merci bien

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Bon j'ai quand même tenté de trouver une solution par moi même (une fois n'est pas coutûme)

    Donc, j'utilise un ListView que j'ai appelé "liste"

    Je l'initialise en lui attribuant des colones =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    liste.Columns.Add(strColNoCli, 100, HorizontalAlignment.Left)
    liste.Columns.Add(strColNomCli, 100, HorizontalAlignment.Left)
    liste.Columns.Add(strColNomPays, 100, HorizontalAlignment.Left)
    Parallelement je crée une fonction qui contient une requête =>

    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 Function AfficheListe(ByRef liste As ListView) As ListView.ListViewItemCollection
            Dim oconBase As OracleClient.OracleConnection
            Dim ocomCommand As OracleClient.OracleCommand
            Dim strConnexionSQL As String
            Dim strRequete As String
            Dim onumTemp As OracleClient.OracleDataReader
     
            strConnexionSQL = CONNECTION_STRING_IFS_DATABASE
            oconBase = New OracleClient.OracleConnection(strConnexionSQL)
            strRequete = "SELECT CLIENT.NO_CLIENT, CLIENT.NOM_CLIENT, PAYS.NOM_PAYS FROM CLIENT, PAYS WHERE(CLIENT.NUM_PAYS = PAYS.NO_PAYS) ORDER BY CLIENT.NOM_CLIENT"
            ocomCommand = New OracleClient.OracleCommand(strRequete, oconBase)
            ocomCommand.Connection.Open()
            Try
                 ocomCommand.ExecuteNonQuery
            Catch ex As OracleClient.OracleException
                Console.WriteLine(ex.Message)
                MsgBox("Une erreur est survenue lors du chargement")
            End Try
            ocomCommand.Connection.Close()
        End Function
    A ce stade là, je bloque, j'arrive même pas à mettre mon jeu de réponses dans une variable... Alors les faire apparaître dans mon listview....

    Bref, un ti coup de pouce serait pas de refus

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Je suis quasiment arrivé à ce que je voulais : les données de ma base s'affichent dans ma listview...

    Mais il n'y a que le 1er champ de ma requete qui s'affiche, dans la 1ere colonne de la listview

    Un ptit bout de code si jamais quelqu'un peut me donner un coup de pouce =>
    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
    34
     
        Public Sub AfficheListe(ByRef liste As ListView, ByVal strColNomCli As String, ByVal strColNoCli As String, ByVal strColNomPays As String)
            Dim oconBase As OracleClient.OracleConnection
            Dim ocomCommand As OracleClient.OracleCommand
            Dim strConnexionSQL As String
            Dim strRequete As String
            Dim liTemp As New ListViewItem
            Dim rs As System.Data.OracleClient.OracleDataReader
            Dim i As Integer
     
            liste.Items.Clear()
            strConnexionSQL = CONNECTION_STRING_IFS_DATABASE
            oconBase = New OracleClient.OracleConnection(strConnexionSQL)
            strRequete = "SELECT CLIENT.NO_CLIENT, CLIENT.NOM_CLIENT, PAYS.NOM_PAYS FROM CLIENT, PAYS WHERE(CLIENT.NUM_PAYS = PAYS.NO_PAYS) ORDER BY CLIENT.NOM_CLIENT"
            ocomCommand = New OracleClient.OracleCommand(strRequete, oconBase)
            ocomCommand.Connection.Open()
            Try
                rs = ocomCommand.ExecuteReader
            Catch ex As OracleClient.OracleException
                Console.WriteLine(ex.Message)
                MsgBox("Une erreur est survenue")
            End Try
     
            i = -1
            Do While rs.Read()
                i = i + 1
                Dim LVI As New ListViewItem
                liste.Items.Add(rs.GetValue(0))
                liste.EnsureVisible(i)
                Application.DoEvents()
            Loop
            rs.Close()
            ocomCommand.Connection.Close()
        End Sub
    Il n'y a donc que le "NO_CLIENT" qui s'affiche, dans la 1ere colonne...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 26
    Points : 20
    Points
    20
    Par défaut
    Héhé une fois de plus il a bien fallu que je me démerde tout seul. Bon, pour la postérité, je poste la solution du problème :

    1/ J'initialise ma liste en lui donnant des colonnes | J'apelle une fonction qui contient ma requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Function InitListeCieemg(ByRef liste As ListView)
            Dim strColNoCli As String = "N° Client"
            Dim strColNomPays As String = "Pays"
            Dim strColNomCli As String = "Société"
     
            liste.Columns.Clear()
            liste.Columns.Add("col1", strColNoCli, 70)
            liste.Columns.Add("col2", strColNomPays, 100)
            liste.Columns.Add("col3", strColNomCli, 90)
     
            AfficheListe(liste, strColNomCli, strColNoCli, strColNomPays)
    2/Voici la fonction contenant la requête (ce qui est important c'est le DataReader)
    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
        Public Sub AfficheListe(ByRef liste As ListView, ByVal strColNomCli As String, ByVal strColNoCli As String, ByVal strColNomPays As String)
            Dim oconBase As OracleClient.OracleConnection
            Dim ocomCommand As OracleClient.OracleCommand
            Dim strConnexionSQL As String
            Dim strRequete As String
            Dim rs As System.Data.OracleClient.OracleDataReader
            Dim i As Integer
     
            liste.Items.Clear()
            strConnexionSQL = CONNECTION_STRING_IFS_DATABASE
            oconBase = New OracleClient.OracleConnection(strConnexionSQL)
            strRequete = "SELECT CLIENT.NO_CLIENT, PAYS.NOM_PAYS, CLIENT.NOM_CLIENT, FROM CLIENT, PAYS,  WHERE(CLIENT.NUM_PAYS = PAYS.NO_PAYS)"
            ocomCommand = New OracleClient.OracleCommand(strRequete, oconBase)
            ocomCommand.Connection.Open()
            Try
                rs = ocomCommand.ExecuteReader
            Catch ex As OracleClient.OracleException
                Console.WriteLine(ex.Message)
                MsgBox("Une erreur est survenue lors du chargement de la liste")
            End Try
     
            i = -1
            Do While rs.Read()
                i = i + 1
                Dim lviTemp As New ListViewItem
                lviTemp = liste.Items.Add(rs.GetValue(0))
                lviTemp.SubItems.Add("col1").Text = rs.GetValue(1)
                lviTemp.SubItems.Add("col2").Text = rs.GetValue(2)
                lviTemp.SubItems.Add("col3").Text = rs.GetValue(3)
     
            Loop
            rs.Close()
            ocomCommand.Connection.Close()
    Et au final, j'ai une belle ListView avec le jeu de réponses de ma requête

    C'est cool ce forum, j'y trouve toujours une réponse à ce que je cherches Bon par contre c'est moi qui me donne la réponse ^_^

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 31/10/2010, 16h05
  2. Afficher les données d'une requête dans un tableau
    Par Elasnaoui dans le forum ASP.NET
    Réponses: 6
    Dernier message: 27/02/2010, 20h52
  3. afficher les données d'une requête dans une ListView
    Par modafine dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/12/2008, 04h44
  4. [VBA-E] afficher les données d'une datagrid dans des zones de textes
    Par fadwa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/05/2006, 13h51
  5. [MySQL] Une liste déroulante affichant les données d'une requête SHOW par ordre alphabétique
    Par jack_1981 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/12/2005, 15h53

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