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 :

erreur sur ExecuteReader


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 30
    Points
    30
    Par défaut erreur sur ExecuteReader
    voilà mon code, je ne comprends pas pourquoi il ne marche pas, il me met l'erreur sur la ligne:

    reader = cmd.ExecuteReader

    Pourtant, la requête sql marche (je l'ai testé moimême dans la bas de données) ainsi que la string de connexion est bonne....

    quelqu'un poura m'aider???

    Merçi d'avance..


    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
        Sub verifier_db2()
     
            Dim conn As New SqlConnection
            Dim reader As SqlDataReader
            Dim serverName As String = "basemaster"
     
            conn.ConnectionString = "packet size=4096;user id=wpmreports;pwd=welcome;data source=""" & serverName & """;persist security info=False;initial catalog=WPMDB"
     
            conn.Open()
     
            Dim cmd As SqlCommand
            cmd = Nothing
     
            cmd = New SqlCommand("SELECT technical_body.TB_KEY1 FROM(technical_body) GROUP BY technical_body.TB_KEY1 ORDER BY technical_body.TB_KEY1;", conn)
     
            reader = cmd.ExecuteReader
     
            Dim i As Integer = 0
     
            While reader.Read
                dropdownlist1.Items.Add(reader.GetString(i))
                i = i + 1
            End While
     
            reader.Close()
            conn.Close()
     
        End Sub

  2. #2
    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
    le message d'erreur ???
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 30
    Points
    30
    Par défaut
    message d'erreur:

    Exception Details: System.Data.SqlClient.SqlException: Line 1: Incorrect syntax near ')'.

    en plus, il me met en couleur la ligne :

    reader = cmd.ExecuteReader()


    même si je fait :
    reader = cmd.ExecuteReader (sans les parenthèses) , ça me donne la même erreur..

  4. #4
    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
    executereader qui plante veut dire que c la requete qui plante
    SqlException le prouve aussi
    et ca te parles de parenthèse, donc retire les parenthèses autour du nom de ta table, y en a pas besoin
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 30
    Points
    30
    Par défaut
    ah merci, c'était ça l'erreur, mais là quand j'éxécute le code ça me donne une autre erreur:

    Exception Details: System.IndexOutOfRangeException: Index was outside the bounds of the array.

    et me met en couleur :

    dropdownlist1.Items.Add(reader.GetString(i))


    merci d'avance pour l'aide..

  6. #6
    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
    il suffit de comprendre le reader

    ce code suffit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    While reader.Read
       dropdownlist1.Items.Add(reader.GetString(0))
    End While

    reader.read lit une ligne et pointe vers celle ci tant qu'on ne refait pas .read
    getstring(0) demande la valeur de la colonne 0 pour la ligne actuelle

    et donc toi tu demandais la valeur de colonnes qui n'existaient pas ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 30
    Points
    30
    Par défaut
    merci beaucoup sperot51, ça marche là mon code !

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 30
    Points
    30
    Par défaut
    en fait, j'ai un autre problème très similaire, c'est preque le même code mais les données extraites de la base de données sont mises dans un tableau, et quand je veux les afficher sur une page html avec un label rien ne s'affiche, ceci dit que les données ne sont pas mises dans le tableau , et par suite que les données ne sont pas lus....voilà on revient au même problème...

    mais ce qui est bizarre c'est que mon code ne génère pas d'erreur mais n'affiche pas les valeurs du tableau.....

    merci d'avance pour l'aide..

    voiçi 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
    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
     
        Function verifier_db(ByVal lastname)
     
            Dim conn As New SqlConnection
            Dim reader As SqlDataReader
            Dim serverName As String = "basemaster"
     
            conn.ConnectionString = "packet size=4096;user id=wpmreports;pwd=welcome;data source=""" & serverName & """;persist security info=False;initial catalog=DSDB"
     
            conn.Open()
     
            Dim cmd As SqlCommand
            cmd = Nothing
     
            cmd = New SqlCommand("SELECT PERSON.PERSON_ID, PERSON.FIRSTNAME, PERSON.LASTNAME, PERSON.INTERNET_ADD FROM PERSON WHERE (((PERSON.LASTNAME)=' " + lastname + " '));", conn)
     
            reader = cmd.ExecuteReader
     
            Dim tab(3) As String
     
            While reader.Read
     
                tab(0) = reader.GetString(0) 'person_id
                tab(1) = reader.GetString(1) 'firstname
                tab(2) = reader.GetString(2) 'lastname
                tab(3) = reader.GetString(3) 'email
                MsgBox(reader.GetString(3))
                lbl2.Text = tab(3)
            End While
     
            reader.Close()
            conn.Close()
            Return tab
        End Function
     
       Sub Page_Load()
     
            Dim firstname As String = string1.Value
            Dim lastname As String = string2.Value
            Dim table(3) As String
     
            table = verifier_db(lastname)
            lbl1.Text = table(2)
      End Sub

  9. #9
    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
    j'y connais rien en web forms

    mais ton code à l'air étrange, ta fonction, tu ne précises pas si elle est publique ou privée, normalement une fonction c'est As quelque chose aussi

    si on peut débugger une appli web forms essaye de mettre des points d'arret pour voir ce qu'il se passe
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 30
    Points
    30
    Par défaut
    bon j'arrive à contourner mon dernier code....donc c'est pas grave, mais là c'est grave, en fait après avoir mis une colonne dans un DropDownList, et quand je choisis n'importe lequel de cette DropDownList et je clique sur le boutton submit (le deuxième), d'habitude une deuxième DropDownList doit s'afficher avec des élements dedans mais les élements n'y figurent pas, et mon code ne me donne pas d'erreur...

    quelqu'un pourra m'aider pour faire figurer les élements dans le deuxième DropDownList.....


    voiçi 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
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    Partial Class _Default
        Inherits System.Web.UI.Page
     
     
        Sub submit(ByVal sender As Object, ByVal e As EventArgs)
            lbl2.Text = "You selected " & dropdownlist1.SelectedItem.Text
            verifier_db3()
        End Sub
     
     
        Sub verifier_db3()
     
            Dim conn As New SqlConnection
            Dim reader As SqlDataReader
            Dim serverName As String = "basemaster"
            Dim variable As String = dropdownlist1.SelectedItem.Text
            Dim request As String = "SELECT MEETINGS.MTG_REF FROM MEETINGS INNER JOIN technical_body ON MEETINGS.TB_ID = technical_body.TB_ID WHERE (((technical_body.TB_KEY1)=' " + variable + " ') AND ((MEETINGS.MTGS_CODE)='PREPARATION'));"
     
            conn.ConnectionString = "packet size=4096;user id=wpmreports;pwd=welcome;data source=""" & serverName & """;persist security info=False;initial catalog=DSDB"
     
            conn.Open()
     
            Dim cmd As SqlCommand
            cmd = Nothing
     
            cmd = New SqlCommand(request, conn)
     
            reader = cmd.ExecuteReader
     
            While reader.Read
                dropdownlist2.Items.Add(reader.GetString(0))
            End While
     
            reader.Close()
            conn.Close()
     
        End Sub
     
     
     
     
        Sub verifier_db2()
     
            Dim conn As New SqlConnection
            Dim reader As SqlDataReader
            Dim serverName As String = "basemaster"
            Dim request As String = "SELECT technical_body.TB_KEY1 FROM technical_body  GROUP BY technical_body.TB_KEY1 ORDER BY technical_body.TB_KEY1;"
     
            conn.ConnectionString = "packet size=4096;user id=wpmreports;pwd=welcome;data source=""" & serverName & """;persist security info=False;initial catalog=WPMDB"
     
            conn.Open()
     
            Dim cmd As SqlCommand
            cmd = Nothing
     
            cmd = New SqlCommand(request, conn)
     
            reader = cmd.ExecuteReader
     
            While reader.Read
                dropdownlist1.Items.Add(reader.GetString(0))
            End While
     
            reader.Close()
            conn.Close()
     
     
        End Sub
       Sub Page_Load()
     
            Dim firstname As String = string1.Value
            Dim lastname As String = string2.Value
        End Sub
     
     
        Public Shared Sub Main()
     
        End Sub
     
    End Class

    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
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" Debug="true" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     <script runat="server">
     
     </script>
     
     
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>Page sans titre</title>
    </head>
    <body>
    <h1>Page test</h1>
        <form id="form1" runat="server">
        <div>
     
     
        </div>
     
            Enter your first name: 
            <input id="string1" type="text" size="25" runat="server" />
            <br />
            Enter your last name: 
            <input id="string2" type="text" size="25" runat="server" />
            <br />
            <br />
            <input id="Submit1" type="submit" value="Submit" runat="server" onserverclick="Page_Load" />
            <asp:Label id="lbl1" runat="server"></asp:Label>
            <asp:Label id="lbl2" runat="server"></asp:Label>
     
            <p align="center">   
                <asp:DropDownList id="dropdownlist1" runat="server"/>
                <input id="Submit2" type="submit" value="Submit" onserverclick="submit" runat="server" />
                <asp:DropDownList id="dropdownlist2" runat="server"/> 
            </p>
     
        </form>
    </body>
    </html>

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 30
    Points
    30
    Par défaut
    il y a personne pour m'aider....??

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 30
    Points
    30
    Par défaut
    personne.........

  13. #13
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut
    Salut

    ca donne quoi le debug et Pas a Pas??

    est ce que tu as la bonne valeur dans ??

    Est ce que ta requete renvoie bien un resultat et pas un truc vide.

    Essaie d'utiliser les breakpoints et le pas a pas ; tu verras tt de suite ce qui ne va pas.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 30
    Points
    30
    Par défaut
    en fait, concernant le requête sql de verifier_db3() elle doit être celle-çi :

    celle-çi marche dans access mais ne marche pas dans mon code..

    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select dbo_MEETINGS.MTG_REF FROM dbo_MEETINGS INNER JOIN dbo_technical_body ON dbo_MEETINGS.TB_ID = dbo_technical_body.TB_ID WHERE (((dbo_technical_body.TB_KEY1)=' " + variable + " ') AND ((dbo_MEETINGS.MTGS_CODE)='PREPARATION'));

    Un des membres du forum m'avait répondu sur cette question l'autre fois qu'il fallait enlever les "dbo_" car là je travaille avec les serveurs de l'entreprise..et je les avait enlever et ça marchait....(j'avais ré-essayé dans access sans "dbo_" et c'etait bon) : c'était pour verifier_db2()

    donc moi spontanément, j'ai enlevé les "dbo_" pour cette requête aussi, mais là, quand je ré-essaye dans access la requête sql sans "dbo_", ça ne marche pas, et si je la met dans mon code avec les "dbo_", ça ne marche pas non plus.....

    donc, pour résumer,

    la requête de verifier_db2() marche dans access mais pas dans mon code avec "dbo_" .
    elle marche dans access et dans mon code sans "dbo_"

    la requête de verifier_db3() marche dans access mais pas dans mon code avec "dbo_" .
    elle ne marche ni dans access ni dans mon code sans "dbo_"


    voilà, c'est ça le problème,

    c'est pour le requête de verifier_db3()

    quelqu'un saurait comment le résoudre?

    merci..

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 107
    Points : 30
    Points
    30
    Par défaut
    il y a personne pour m'aider....

  16. #16
    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
    access ...


    sur sql server t'aurais peut etre eut plus d'aide (moins de problèmes ? (plus de questions ? ))
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. [Débutant] Erreur sur ExecuteReader
    Par Asuna dans le forum VB.NET
    Réponses: 16
    Dernier message: 04/10/2013, 14h01
  2. [VBS] Erreur sur "AddWindowsPrinterConnection"
    Par Admin dans le forum VBScript
    Réponses: 5
    Dernier message: 27/03/2004, 16h15
  3. Erreur sur serveur lié
    Par k-lendos dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/03/2004, 15h21
  4. []Erreur sur second emploi collection binding
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/03/2004, 18h02
  5. Erreur sur le TNSListener après installation de 9iAS
    Par Patmane dans le forum Installation
    Réponses: 4
    Dernier message: 04/02/2004, 11h16

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