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 :

Problème lecture dataTable


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti ingénieur

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Points : 13
    Points
    13
    Par défaut Problème lecture dataTable
    Bonjour

    J'ai un soucis pour lire la valeur placé dans la première colonne et la première ligne d'une datatable.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                Dim PreSuiEnt As String
                Dim Conv As String
                Dim PreSuiEntTable As DataTable
                PreSuiEnt = "select rapports.ChargeSuiviEntPrenom FROM rapports, entreprises WHERE rapports.SIRET=entreprises.SIRET and rapports.competence ='" & BoxComp.Text & "' and  entreprises.RaisonSociale='" & BoxEnt.Text & "'and  SujetProjet='" & BoxSujet.Text.Replace("'", "''") & "';"
                PreSuiEntTable = readrecord(PreSuiEnt)
                Conv = PreSuiEntTable.Rows(0)(0).ToString
                PrenomSuiEnt.Text = Conv
    Ce code na marche pas par contre quand j'enlève le "Rows(0)(0)", la valeur qui sort est "Table".

    Merci

  2. #2
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Yep

    Il faudrait rajouter ceci dans ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if PreSuiEntTable.Rows.Count() <> 0 then
        Conv = PreSuiEntTable.Rows(0)(0).ToString
    else
       Conv = ""
    endif
    J'ai l'impression qu'en fait ta requête ne renvoi aucune ligne. Et vu que tu essais de lire la valeur de la ligne 1 dans la colonne 1 qui est vide, tu as une erreur.

    Le fait de faire PreSuiEntTable.Tostring qui te renvois Table est logique car le ToString dans ce cas renvoi le type de l'objet.
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre à l'essai
    Homme Profil pro
    Apprenti ingénieur
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti ingénieur

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Points : 13
    Points
    13
    Par défaut
    Merci de ta réponse, c'est bien ma requête qui est faute.

    Par contre il n'y a aucun moyen de savoir ou est la faute dans ma requête ?

    Merci

  4. #4
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Difficile à dire comme çà je ne vois rien d’anormal.

    Il faudrait savoir si les paramètres sont bien tous valides. Il est aussi recommandé d'utiliser des requêtes paramétrés mais difficile à expliquer sans connaitre le code de la fonction "readrecord"
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  5. #5
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    Si tu es arrivé jusqu'au ToString c'est que ta requête est bonne (syntaxiquement), la question est pourquoi ta requête ne renvoie rien c'est bien ça?

    Il faudrait peut ête que tu postes ta fonction readrecord.
    Comme infosam76 l'a dit, il est fortement recommandé d'utiliser des requêtes paramétrées.

    Dans le cas ou tu utilises une base de données oracle, il faut que la valeur dans la base et la valeur saisie soient les deux en majuscule ou en minuscule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " and UPPER(rapports.competence) =UPPER('" & BoxComp.Text & "')"

  6. #6
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Il faudrait peut-être aussi implémenter un try - catch dans ta fonction readrecord qui renvois peut-être une erreur mais que tu n'interceptes pas
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  7. #7
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Place un point d'arrêt à la ligne de ta requêtes, et à l’exécution vois la valeur de PreSuiEnt. Tu pourras déjà voir la construction globale de ta requêtes avec les valeurs de tes BoxComp, etc
    Si rien d'anormal, tu peux la tester sur ton SGBD et voir si lui retourne qqch, et si toujours aucun retour, c'est que la requête est mal conçue dans son idée.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

Discussions similaires

  1. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  2. [SAX] Problème lecture fichier xml
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 07/07/2005, 18h11
  3. [communication série] problème lecture/écriture
    Par davinout dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 01/06/2005, 13h14
  4. Problème lecture fichier en C++
    Par cali1983 dans le forum C++
    Réponses: 17
    Dernier message: 20/05/2005, 09h36
  5. Problème lecture de nombre dans un fichier en c++
    Par knecmotet dans le forum C++
    Réponses: 1
    Dernier message: 28/10/2004, 15h48

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