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 :

vb.net requête Sql


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Par défaut vb.net requête Sql
    Bonjour

    J'ai un souci avec mon code ( cf plus bas)

    En fait, le souci se trouve ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sql100 = "SELECT * FROM suivi WHERE resolu = '" & "pas répondu" & "'"
    da100 = New MySqlDataAdapter(sql100, HostConn)
    da100.Fill(dst100, "suivi")
    on dirait qu'il ignore la ligne da100.Fill(dst100, "suivi"), lorque j'avance en pas à pas détaillé, il s'arrete a cette ligne, puis rien ne se passe et ma listview ne se rempli pas
    Si je passe en commentaire cette ligne et que je fixe les variables nticket, etab...., ma listeview se rempli correctement

    Aucune erreur en s'affiche, le code s'execute mais s'arrete à cette ligne, du coup la listview ne se rempli pas

    Cela fait quelqeus jours que je test mais je ne m'en sors pas, je sèche

    Merci à vous




    Code complet du chargement de la Winform

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    ListView1.BeginUpdate()
            ListView1.Items.Clear()
     
     
            adresse1 = mod_INI.LireINI("@suiviqualite", "adresse")
            user1 = mod_INI.LireINI("@suiviqualite", "user")
            password1 = mod_INI.LireINI("@suiviqualite", "password")
            db1 = mod_INI.LireINI("@suiviqualite", "database")
            HostConn.ConnectionString = "server=" & adresse1 & ";" _
                                    & "user id=" & user1 & ";" _
                                    & "password=" & password1 & ";" _
                                    & "database=" & db1 & ""
     
            HostConn.Open()
            Dim sql20 As String
            sql20 = "SELECT COUNT(*) FROM suivi WHERE resolu = '" & "pas répondu" & "'"
            da20 = New MySqlDataAdapter(sql20, HostConn)
            da20.Fill(dst20, "suivi")
            nombre_ligne10 = (dst20.Tables("suivi").Rows(0).Item(0)) - 1
     
            For i = 0 To nombre_ligne10
     
     
                Dim nticket, etab, etat, user, satisfait As String
                Dim datemail As Date
                Dim sql100 As String
                sql100 = "SELECT * FROM suivi WHERE resolu = '" & "pas répondu" & "'"
                da100 = New MySqlDataAdapter(sql100, HostConn)
                da100.Fill(dst100, "suivi")
                nticket = 1
                etab = 2
                user = 3
                datemail = Date.Now
                etat = 5
                satisfait = 6
     
                'INITIALISATION(ListView)
     
                ListView1.Items.Add(New ListViewItem(New String() {nticket, datemail, user, etab, etat, satisfait}))
     
            Next
     
     
            'MISE A JOUR DE LA LISTVIEW TERMINEE
            MsgBox("bouh")
            ListView1.EndUpdate()
            HostConn.Close()
            dst10.Clear()
            dst20.Clear()
            dst100.Clear()

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    Bonjour,

    Je ne vois pas la ligne de code ou vous déclarez votre DataSet ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim dst100 As DataSet = New DataSet()
    A+

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Par défaut
    Bonjour

    Merci pour votre réponse

    j'ai bien la ligne déclaré mais plus haut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Public Class MenuPrincipal
        Dim HostConn, hostconn1 As New MySqlConnection
        Dim da, da2, da3, da4, da10, da20, da100, da200 As MySqlDataAdapter
        Dim dst, dst2, dst3, dst4, dst10, dst20, dst100, dst200 As New DataSet
    En même temps que je réponds je fait d'autre test également

    Merci

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Par défaut
    CODE MIS A JOUR

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
     Private Sub Stat_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            ListView1.BeginUpdate()
            ListView1.Items.Clear()
     
     
            adresse1 = mod_INI.LireINI("@suiviqualite", "adresse")
            user1 = mod_INI.LireINI("@suiviqualite", "user")
            password1 = mod_INI.LireINI("@suiviqualite", "password")
            db1 = mod_INI.LireINI("@suiviqualite", "database")
            HostConn.ConnectionString = "server=" & adresse1 & ";" _
                                    & "user id=" & user1 & ";" _
                                    & "password=" & password1 & ";" _
                                    & "database=" & db1 & ""
     
            HostConn.Open()
            Dim sql20 As String
            Dim da20 As MySqlDataAdapter
            Dim dst20 As DataSet = New DataSet()
            sql20 = "SELECT COUNT(*) FROM suivi WHERE resolu = '" & "pas répondu" & "'"
            da20 = New MySqlDataAdapter(sql20, HostConn)
            da20.Fill(dst20, "suivi")
            nombre_ligne10 = (dst20.Tables("suivi").Rows(0).Item(0)) - 1
            MsgBox(nombre_ligne10)
            dst20.Clear()
            For i = 0 To nombre_ligne10
     
     
                Dim nticket, etab, etat, user, satisfait As String
                Dim datemail As Date
                Dim sql100 As String
                Dim da100 As MySqlDataAdapter
                Dim dst100 As DataSet = New DataSet()
                sql100 = "SELECT * FROM suivi WHERE resolu = '" & "pas répondu" & "'"
                da100 = New MySqlDataAdapter(sql100, HostConn)
                MsgBox("a")
                da100.Fill(dst100, "suivi")
                MsgBox("b")
                nticket = 1
                etab = 2
                user = 3
                datemail = Date.Now
                etat = 5
                satisfait = 6
                dst100.Clear()
     
                'INITIALISATION(ListView)
     
                ListView1.Items.Add(New ListViewItem(New String() {nticket, datemail, user, etab, etat, satisfait}))
     
            Next
     
     
            'MISE A JOUR DE LA LISTVIEW TERMINEE
            MsgBox("bouh")
            ListView1.EndUpdate()
            HostConn.Close()
     
     
     
     
     
        End Sub
    j'ai bien la fenêtre popup "a" mais pas la "b" , cf les msgbox

    Aucun message d'erreur, la listview1 reste blanche mais pas de plantage ou de message d'erreur, le code ne passe pas au msgbox("b"), il termine l'execution du bouton....

  5. #5
    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
    Par défaut
    Bonjour,

    Pourquoi utiliser un dataset pour remplir le listview manuellement ?
    Passez par un datareader, ce sera moins lourd.

    Exemple avec access (a adapter à votre sgbd)
    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
            Dim MaRequete As String = "SELECT suivi.[nticket], suivi.[etab], suivi.[user], suivi.[datemail], suivi.[etat], suivi.[satisfait] FROM suivi where resolu=?"
            Using cn As New OleDbConnection("PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source =d:\data\personnes\personnes.accdb"), cmd As New OleDbCommand(MaRequete, cn)
                cmd.CommandText = MaRequete
                cmd.Parameters.AddWithValue("?", "pas répondu")
                Try
                    cn.Open()
                    Using reader As OleDbDataReader = cmd.ExecuteReader()
                        If reader.HasRows Then
                            Do While reader.Read()
                                MessageBox.Show(reader.GetString(0) & vbTab & reader.GetString(1) & vbTab & reader.GetString(2) & vbTab & reader.GetDateTime(3) & vbTab & reader.GetString(4) & vbTab & reader.GetString(5))
                                'ListView1.Items.Add(New ListViewItem(New String() {reader.GetString(0), reader.GetDateTime(3), reader.GetString(2), reader.GetString(1), reader.GetString(4), reader.GetString(5)}))
                            Loop
                        Else
                            MessageBox.Show("No rows found.")
                        End If
                        reader.Close()
                    End Using
                Catch ex As Exception
                    MsgBox(ex.ToString)
                End Try
            End Using
    Sinon utiliser des requêtes paramétrées plutôt que des concaténations de chaînes.

    Si vous avez plusieurs listeview avec les mêmes colonnes, vous pouvez en faire une fonction ou vous passez en paramètre le listview la requête et le critère de recherche.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    +1 avec tout ce qu'à dit Hervé.

    Cependant, pour répondre à la question :
    Dans l'évènement Load d'un formulaire, si une erreur se produit et que la ligne provoquant cette erreur n'est pas dans un bloc try...catch, l'erreur est passée sous silence et l'évènement est interrompu.
    C'est sans doute ce qu'il se passe dans votre cas.

Discussions similaires

  1. Export CSV à partir d'une requête SQL(VB.Net)
    Par bestcasaoui dans le forum VB.NET
    Réponses: 3
    Dernier message: 11/01/2011, 16h51
  2. Jasper /.Net /Requête SQL dynamique
    Par dedein84 dans le forum Jasper
    Réponses: 7
    Dernier message: 26/09/2008, 17h12
  3. Requête SQL avec CheckBox vb.net
    Par pierrot53 dans le forum VB.NET
    Réponses: 13
    Dernier message: 30/03/2008, 19h24
  4. [VB.NET] [SQL] Pb requête sql, récupérer des params. ?
    Par Pleymo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/02/2005, 20h15

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