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 : Object reference not set to an instance of an object.


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Points : 78
    Points
    78
    Par défaut erreur : Object reference not set to an instance of an object.
    bonjour
    Je débute avec VB.net...
    En fait je suis entrain d'utiliser SSIS et j'aimerais faire de la transformation de données depuis ma source (excel).
    Voici mon script:
    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
    Imports System
    Imports System.Data
    Imports System.Math
    Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
    Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
     
    Public Class ScriptMain
        Inherits UserComponent
     
        Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
     
     
            If Row.FBI.Contains("FBI") And Not Row.FBI_IsNull Then
                Row.TFBI = Row.FBI
                Row.TActivite = CStr("Formation")
            End If
            If Row.FPT.Contains("FPT") And Not Row.FPT_IsNull Then
                Row.TFPT = Row.FPT
                Row.TActivite = CStr("Formation")
            End If
            If Row.PBI.Contains("PBI") And Not Row.PBI_IsNull Then
                Row.TPBI = Row.PBI
                Row.TActivite = CStr("Projet")
            End If
            If Row.PPT.Contains("PPT") And Not Row.PPT_IsNull Then
                Row.TPPT = Row.PPT
                Row.TActivite = CStr("Projet")
            End If
        End Sub
     
    End Class
    Lorsque je génére mon flux SSIS, j'obtiens cette erreur au niveau de mon script :Object reference not set to an instance of an object.

    Vous avez une idée d'ou ca peut venir...si j'ai oublié qqchose dans le code...

    Merci d'avance!

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par steinia Voir le message
    Lorsque je génére mon flux SSIS, j'obtiens cette erreur au niveau de mon script :Object reference not set to an instance of an object.
    Sur quelle ligne ?
    En tout cas ça veux dire que l'un des objets auquel tu accède vaut Null donc vérifie avec une exécution pas à pas la valeur de tes variables au sein de cette méthode.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Points : 78
    Points
    78
    Par défaut
    Lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Row.FBI.Contains("FBI") And Not Row.FBI_IsNull
    , ce n'est pas sensé vérifier si la ligne est nulle?

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Essayes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     If Not Row.FBI_IsNull And Row.FBI.Contains("FBI")
    Parce que sinon tu vérifies qu'elle soit nul après y avoir touché ...

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 172
    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 172
    Points : 25 112
    Points
    25 112
    Par défaut
    and vérifie toutes les clauses de toute facon
    andalso ne vérifie que si le début est vrai
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Points : 78
    Points
    78
    Par défaut
    J'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            If Not Row.FBI_IsNull Then
                If Row.FBI.Contains("FBI") Then
                    Row.TType = Row.FBI
                    Row.TActivite = CStr("Formation")
                End If
            End If
    comme ça ca fonctionne, par contre il continue dans mon flux SSIS de me renvoyer les autres lignes ( à nulles du coup, car elles sont vides).
    Ce que j'aimerais faire c'est que, dans ma colonne Excel des qu'il trouve "FBI", il mette row.Ttype="FBI" et Tactivite="formation" et qu'il zappe les autres lignes...

    il y a une solution pour qu'il supprime les lignes vides?

    MErci!

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Points : 78
    Points
    78
    Par défaut
    En fait, je vais essayer de marquer les lignes vides...par contre si je fais ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            
    If Not Row.FBI Is Nothing AndAlso Not (Row.FBI Is DBNull.Value) Then
                If InStr(Row.FBI, "FBI") > 0 Then
                    Row.TType = Row.FBI
                    Row.TActivite = CStr("Formation")
                Else
                    Row.TType = DBNull.Value
                End If
            End If
    il me dit "dbnull ne peut être converti en string".

    Y'a t'il un autre moyen pour qu'il mette la valeur "null"?

Discussions similaires

  1. erreur: Object reference not set to an instance of an object.
    Par soumamort dans le forum Windows Forms
    Réponses: 14
    Dernier message: 02/05/2008, 17h31
  2. new : Object reference not set to an instance of an object
    Par zulad dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/06/2007, 20h35
  3. Object reference not set to an instance of an object
    Par DjRusty dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/03/2007, 07h26
  4. Réponses: 1
    Dernier message: 28/12/2006, 11h05
  5. Réponses: 1
    Dernier message: 20/04/2006, 12h09

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