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 :

Runtime Error en utilisant SubString


Sujet :

VB.NET

  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 48
    Par défaut Runtime Error en utilisant SubString
    Salut à tous,

    Je possède en entrée une table SQL auquel je veux compter le nombre de Secteurs similaires. Je m’explique, J’ai 15 Points allant de 1 à 15, et chaque Point possède un Secteur propre à lui, sa nous donne par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ID| Secteur_Point1 | Secteur_Point2 | Secteur_Point3 | Secteur_Point4 | Secteur_Point5 | Secteur_Point6 |
     1     Sect1         Sect1                Sect2          Sect2               Sect2          Sect2
    Moi je cherche à compter le Nombre de Secteurs similaires: par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ID |     Nombre_Sect1 | Nombre_Sect 2 | Nombre_Sect 3 
    1             2               4                0
    Et pour cela j'ai pensé à dimensionner un tableau Dim Secteur(6) As String auquel je met dedans les différents Secteur_Point3 que j'ai (Dans mon cas, j'ai Sect1, Sect1, Sect2, Sect2, Sect2, Sect2)

    Et un autre tableau Dim Nombre_Secteur(2) As Integer pour compter le Nombre de Secteurs Similaires. Donc je parcours le tableau Dim Secteur et si je retrouve Sect1 alors je fais : Nombre_Secteur(1) = Nombre_Secteur(1) + 1 et si je trouve Sect2 alors je fais : Nombre_Secteur(2) = Nombre_Secteur(2) + 1

    Voici 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
     
     
                Dim Secteur(6) As String
                Secteur(1) = Row.Secteur_Point1.Substring(0, Row.Secteur_Point1.Length)
                Secteur(2) = Row.Secteur_Point2.Substring(0, Row.Secteur_Point2.Length)
                Secteur(3) = Row.Secteur_Point3.Substring(0, Row.Secteur_Point3.Length)
                Secteur(4) = Row.Secteur_Point4.Substring(0, Row.Secteur_Point4.Length)
                Secteur(5) = Row.Secteur_Point5.Substring(0, Row.Secteur_Point5.Length)
                Secteur(6) = Row.Secteur_Point6.Substring(0, Row.Secteur_Point6.Length)
     
                Dim i As Integer
                Dim NombreSecteur(2) As Integer
                For i = 1 To 2
                    If Secteur(i) = "Sect1" Then
                        NombreSecteur(1) = NombreSecteur(1) + 1
     
                    ElseIf Secteur(i) = "Sect2" Then
                        NombreSecteur(2) = NombreSecteur(2) + 1
     
                    End If
     
                Next
     
    Row.Nb_Sect1 = NombreSecteur(1)  // Pour charger dans ma table SQL SERVER dans la colonne Nb_Sect1
    Row.Nb_Sect2 = NombreSecteur(2) // Pour charger dans ma table SQL SERVER dans la colonne Nb_Sect2
    Mais j'ai eu une erreur : La référence d'objet n'est pas définie à une instance d'un objet

    Merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Bonjour,

    Ton erreur ne semble pas être la résultante du code que tu nous montres mais plutôt un problème lié à l'accès ou la connexion SQL.

    Essaye de mettre un point d'arrêt pour en savoir plus.

    D'autre part, tu exploites plusieurs tableaux en démarrant tes indices à 1.
    N'oublie pas qu'en VB, celà démarre à 0 (dans ton cas, celà ne génère pas d'exception car tu dimensionnes tes tableaux avec une valeur de plus que nécessaire mais...

  3. #3
    Membre averti
    Inscrit en
    Août 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 48
    Par défaut
    Bonjour,

    Je compte à vous remercier nikoko34 de votre passage et votre éclaircissement qui m'a permis de résoudre mon problème qui était d'une part dû à mon indice du tableau qui démarrer de 1 au lieu de 0 et aussi que j'ai exploiter la fonction SubString au mauvais endroit, parce que tout simplement je charge direct de ma table SQL vers ma case de tableau en faisant un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim Secteur(6) As String
                Secteur(0) = Row.Secteur_Point1
                Secteur(1) = Row.Secteur_Point2
                Secteur(2) = Row.Secteur_Point3
                Secteur(3) = Row.Secteur_Point4
                Secteur(4) = Row.Secteur_Point5
                Secteur(5) = Row.Secteur_Point6
    Et sa marche très bien

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

Discussions similaires

  1. Runtime error avec UDF/DLL
    Par pram dans le forum SQL
    Réponses: 6
    Dernier message: 22/04/2005, 10h30
  2. [LG]Runtime Error lors d'une recherche dans un fichier
    Par Fraynor dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2005, 22h51
  3. [TP]Runtime error 106 à l'exécution
    Par BlackTiger dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 25/01/2004, 21h50
  4. [LG]runtime error 202
    Par picsou123 dans le forum Langage
    Réponses: 2
    Dernier message: 14/11/2003, 22h53
  5. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51

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