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 :

Récupérer la valeur de ma requête SQL pour générer un événement dans un panel


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Femme Profil pro
    comptable
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : comptable

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 8
    Points
    8
    Par défaut Récupérer la valeur de ma requête SQL pour générer un événement dans un panel
    Bonjour

    Je suis débutante et utilise le langage VB associé à SQL (visual studio 2010)
    J'exécute une requête à partir d'une Listview - la requête fonctionne (elle va chercher la valeur sélectionnée dans ma listview).
    Je voudrais utiliser le résultat de ma requête qui est une valeur unique pour la tester et actionner la mise en forme d'un panel (effet slide).
    À la base, j'avais paramétré mon champ en "bit" pour qu'il me renvoie une valeur booléenne Vrai ou Faux, mais ensuite je me suis tourné sur du texte en pensant que c'était plus simple de tester un chaîne de caractères, mais je n'y arrive pas malgré tout.

    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
     
    Private Sub fevrier()
            Try
                MonPanel1.Width = 10
                MonLabel1.Visible = False
                com = New SqlCommand
                com.Connection = cn
                com.CommandType = CommandType.Text
                com.CommandText = "SELECT VENDRE.FEVRIER FROM FRS INNER JOIN VENDRE ON FRS.CODE_FRS = VENDRE.CODE_FRS INNER JOIN PRODUIT ON VENDRE.NOM_PRO = PRODUIT.NOM_PRO WHERE (FRS.NOM_FRS=@jan)"
                com.Parameters.Add("@jan", SqlDbType.VarChar, 50)
                com.Parameters("@jan").Value = lv_frs.SelectedItems(0).Text.Trim
                dr = com.ExecuteReader
                dr.Read()
                Dim Ca As String
                Ca = CStr("FEVRIER")
                If Ca = "toto" Then
                    Do While MonPanel2.Width < 180
                        MonPanel2.Width = MonPanel1.Width + 1
                        MonLabel2.Visible = True
                    Loop
                End If
                dr.Close()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Sub
     
    Private Sub lv_frs_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lv_frs.SelectedIndexChanged
            If (lv_frs.SelectedItems.Count > 0) Then
                fevrier()
            End If
    Voilà, j'ai fait un travail de recherches mais je n'y arrive pas, l'action ne se génère pas.
    Merci pour vos conseils et/ou lien de documentation éventuellement.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,
    Citation Envoyé par blancinette Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dr = com.ExecuteReader
    dr.Read()
    Dim Ca As String
    Ca = CStr("FEVRIER")
    If Ca = "toto" Then
    Voilà, j'ai fait un travail de recherches mais je n'y arrive pas, l'action ne se génère pas.


    Pour récupérer la valeur il faut lire le contenu du DataReader (en supposant que la valeur est "FEVRIER") :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dr = com.ExecuteReader
    If dr.Read() then
      If dr.GetString(0) = "FEVRIER" Then
    Mais pour une seule information il est préférable d'utiliser la méthode ExecuteScalar. Le code devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If com.ExecuteScalar() = "FEVRIER" Then

  3. #3
    Futur Membre du Club
    Femme Profil pro
    comptable
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : comptable

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    merci pour le executescalar, cela renvoi la bonne valeur donc ma requête est bonne aussi ^^
    Par contre mon script d'action doit être foireux car rien ne se passe
    de plus, j'ai oublié de préciser que le champs est soit "toto" soit y'a rien ... de ce fait, quand je clique sur un fournisseur qui n'a rien en février, il me dit :

    Nom : Capture.JPG
Affichages : 172
Taille : 17,0 Ko

    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
     
     
        Private Sub fevrier()
            ' fonction qui test si le champs fevrier de la table vendre pour un fournisseur et un produit donné à une valeur
            Try
                com = New SqlCommand
                com.Connection = cn
                com.CommandType = CommandType.Text
                com.CommandText = "SELECT VENDRE.FEVRIER FROM FRS INNER JOIN VENDRE ON FRS.CODE_FRS = VENDRE.CODE_FRS INNER JOIN PRODUIT ON VENDRE.NOM_PRO = PRODUIT.NOM_PRO WHERE (FRS.NOM_FRS=@jan) AND (PRODUIT.NOM_PRO=@nom)"
                com.Parameters.Add("@jan", SqlDbType.VarChar, 50)
                com.Parameters.Add("@nom", SqlDbType.VarChar, 50)
                com.Parameters("@nom").Value = lv_prod.SelectedItems(0).Text.Trim
                com.Parameters("@jan").Value = lv_frs.SelectedItems(0).Text.Trim
                ' si la valeur est toto, alors le panel slide
                If com.ExecuteScalar() = ("toto") Then
                    Do While MonPanel2.Width < 180
                        MonPanel2.Width = MonPanel1.Width + 1
                    Loop
                    MonLabel2.Visible = True
                End If
                com.Cancel()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End Sub
     
        Private Sub lv_frs_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lv_frs.SelectedIndexChanged
            ' quand on clique sur un fournisseur qui apparait
            If (lv_frs.SelectedItems.Count > 0) Then
                ' alors il va voir si le fournisseur vend en février
                fevrier()
            End If
        End Sub
    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Citation Envoyé par blancinette Voir le message
    j'ai oublié de préciser que le champs est soit "toto" soit y'a rien
    Dans ce cas il faut tester et donc utiliser le DataReader
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    dr = cmd.ExecuteReader
                    If dr.Read() Then
                        If Not dr.IsDBNull(0) Then
                            If dr.GetString(0) = "toto" Then

  5. #5
    Futur Membre du Club
    Femme Profil pro
    comptable
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : comptable

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    et ben merci beaucoup

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/05/2011, 14h51
  2. Récupérer les valeures d'une requête SQL server
    Par leratx dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/02/2011, 00h11
  3. Récupérer les valeurs d'une requête SQL dans un champs html SELECT
    Par tamiii dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/11/2007, 13h27
  4. Réponses: 2
    Dernier message: 12/06/2007, 08h08

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