Probleme execution de requete [Résolu]

Messages postés
66
Date d'inscription
vendredi 9 septembre 2011
Dernière intervention
4 juin 2012
- - Dernière réponse : djbenji81100
Messages postés
66
Date d'inscription
vendredi 9 septembre 2011
Dernière intervention
4 juin 2012
- 19 avril 2012 à 13:21
Bonjour ,

Je suis en train de creer une petite application necessitant une connexion a une base de donnée .

Jusque la tous vas bien je l'est fait avec postgres.

Mais voila lors de l'execution d'une requete monsieur me mets un message d'erreur qui a le don de m'enerver !

Voila le code :

Imports System
Imports System.Management
Imports System.Windows.Forms
Imports ADODB


Public Class Fenetre
    Private chaineconnexion As String
    Private cn As New ADODB.Connection


    Private Sub Fenetre_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim req_sql As String
        Dim i As Integer
        Dim rs As New ADODB.Recordset


        chaineconnexion = "Driver={PostgreSQL ANSI};Server=localhost;Port=5432;Database=Camping_Palace;Uid=postgres;Pwd=modesty1"
        req_sql ("select nom from type_emplacement where code_emplacement " & i)

        ' For i = 1 To 2


        Try

            cn.Open(chaineconnexion)

            i = 1

            rs.Open(req_sql, cn, CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)



            MsgBox(rs.Fields(0).Value)


            Liste_type_emplacement.Items.Add(rs.Fields(0).Value)


            rs.Close()

            cn.Close()


        Catch ex As Exception

            MsgBox("une Exception est déclenchée" & vbCrLf & ex.Message)
            'gestion_erreur(cn)

        Finally

            cn = Nothing

        End Try

        '   Next

    End Sub
End Class


voila le message d'erreur :

"une Exception est déclenchée
BOF ou EOF est égal a true ou l'enregistrement actuel a été supprimée. L'opération demandée nécessite un enregistrement actuel . "

En regardant la requete de plus prés en l'executant sous pgadmin 3 il n'y as aucun probleme . De meme sur le logiciel lorsque je mets la valeur de code_emplacement en dur ( soit 1,2,3 ...) alors Pourquois lorsque je le marque comme ceci il n'aime pas ?

Ce n'est pas la premiere foi que je fait ce genre de requete sur visual studio 2010 mais c'est bien la premiere fois qu'il me marque ce message d'erreur .

Si quelqu'un a une idée je suis prenneur !!

Merci d'avance
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
14385
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
17 février 2019
153
3
Merci
Bonjour,

ton enregistrement est vide, regardes la requête que tu fais en pas à pas, tu verra que tu recherches l'Id 0.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
14385
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
17 février 2019
153
3
Merci
Bonjour,

Sur quelle ligne est déclenchée l'erreur ?
As-tu vérifié les valeurs de la ligne ?
Et si rs est vide (aucun enregistrement) ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
66
Date d'inscription
vendredi 9 septembre 2011
Dernière intervention
4 juin 2012
0
Merci
Bonjour ,

dsl du retard , mais merci pour la reponce !

exact ! j'ai donc modifier ceci mais j'ai toujour une erreur ( differente ) voila ce que j'ai changer .

j'ai meme un peu honte de ne pa avoir trouver l'erreur


   Dim req_sql As String
        Dim i As Integer
        Dim rs As New ADODB.Recordset
        chaineconnexion = "Driver={PostgreSQL ANSI};Server=localhost;Port=5432;Database=Campig_Palace;Uid=postgres;Pwd=modesty1"


        i = 1




        While i <= 2

            req_sql ("select nom from type_emplacement where code_emplacement " & i)

            Try

                cn.Open(chaineconnexion)



                rs.Open(req_sql, cn, CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)



                MsgBox(rs.Fields(0).Value)


                Liste_type_emplacement.Items.Add(rs.Fields(0).Value)


                rs.Close()

                cn.Close()


            Catch ex As Exception

[....]



donc il fait bien le premier tour de boucle avec la bonne info sur le msgbox , mais lors du second tour lors de la connexion avec : "cn.Open(chaineconnexion)"

j'ai ce message d'erreur :

" une Exception est déclenché"
la référence d'oblet n'est pas definie a une instance d'un objet."

sais tu d'où ça vient ?
Commenter la réponse de djbenji81100
Messages postés
66
Date d'inscription
vendredi 9 septembre 2011
Dernière intervention
4 juin 2012
0
Merci
Re

Donc la probleme est declenché a la ligne

" cn.Open(chaineconnexion)" lors du second passage ( au premier tour , aucun soucis j'ai pour cn : "{ADODB.ConnectionClass}" )

mais au second passage j'obtiens ( cn : "Nothing" )

donc je viens d'effectuer un test ( j'ai enlever le cn = nothing ) a la fin de mon code juste avant le End try .

Et MAINTENANT TOUS FONCTIONNES !!!


Merci beaucoup

il est vrai que je n'est pas trop l'abitude d'utiliser les espions express de visual studio pour voir les valeurs des variables .

Merci beaucoup encore une fois et bonne continuation =)

crdt
Commenter la réponse de djbenji81100

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.