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

C# Discussion :

Comment modifier une Datarow ?


Sujet :

C#

  1. #1
    Membre actif
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut Comment modifier une Datarow ?
    j'ai cette instruction :
    Ma_BDDataSet.Table_ClientRow ligne = Ma_BDDataSet.Table_Client.FindByCode("Code_Client");
    aprés j'ai :
    ligne.BeginEdit();
    qui fait déclencher une exception (object reference not set to an instance)
    Comment résoudre ce prob ?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    C'est parce que ligne vaut null, sans doute parce que le code client recherché n'existe pas dans la DataTable

  3. #3
    Membre actif
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut la modification de DataRow n'est pas encore possible
    Le "code client" existe dans le Data Table mais la méthode Find () retourne toujours une valeur nulle

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par med_2007 Voir le message
    Le "code client" existe dans le Data Table mais la méthode Find () retourne toujours une valeur nulle
    Si Find renvoie null, c'est qu'il n'existe pas
    A moins que tu ne sois le premier à tomber sur un gros bug à ce niveau là, mais honnêtement j'y crois pas trop...
    Tu es sûr que "Code_Client" est bien la valeur du code en question ? ça ressemble plutôt à un nom de colonne...

  5. #5
    Membre actif
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut le "Code_Client" existe dans la table
    Oui j'en suis sûr qu'il existe, et j'ai essayer avec l'autre méthode (Rows.Find() et le resultat est toujours nul;

  6. #6
    Membre actif
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut Quel qu'un peut m'aider ?
    Comment réaliser une recherche sur Datarow avec une autre méthode autre que Find ();

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par med_2007 Voir le message
    Oui j'en suis sûr qu'il existe
    Comment l'as-tu vérifié ? Essaie de mettre un breakpoint sur le FindByCode, et vérifie le contenu de la DataTable (en cliquant sur la petite loupe dans le tooltip)

    S'il est vraiment dans la table, Find ne devrait pas renvoyer null, et je ne vois pas trop quoi te dire de plus

  8. #8
    Membre actif
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut un mot sur ma vérification
    Re:
    * Dans ma BD (sql server 2000)
    * et aussi dans le MyData_BaseDataset quand je fais Preview dans ma table client.
    la méthode Rows.Contains("Code_Client") retourne False;

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par med_2007 Voir le message
    * et aussi dans le MyData_BaseDataset quand je fais Preview dans ma table client.
    Oui, mais ça c'est en mode design
    A l'exécution, tu as bien fait un Fill sur la table ? tu as vérifié le nombre de lignes ?

  10. #10
    Membre actif
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut Modification
    Re:
    Je peut ajouter des clients à ma table grace à la méthode AddRow();
    la methode Fill () est appellée dans l'evenement Load () de la forme.
    mais pour modifier la table j'arrive pas à obtenir la ligne courante de ma table pour la modifier, ensuite appeller la méthode Update du TableAdapter.
    si tu peut me donner un code explicatif sur la modification de l'enregistrement sélectioné par son code (CodeClient).

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    non mais attend, il y a un truc qui me semble bizarre dans ton histoire : "Code_Client", c'est le nom d'une colonne, non ? C'est pas la valeur du code pour un client en particulier ?

    Sinon je n'ai pas vraiment d'exemple autre que ce que tu as déjà fait, ta méthode me semble correcte... mais encore une fois, si Find renvoie null, c'est que la ligne n'existe pas, je vois pas comment faire plus clair.

    Essaie de faire comme je t'ai dit, en mettant un breakpoint pour voir le contenu de la table lors de l'exécution

  12. #12
    Membre actif
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par défaut Explication
    Re:
    "Code_client" est en même temps non de colonne et valeur de colone (exemple d'essai),
    le prob etait dans la méthode Fill (); elle n'etait pas dans le bon emplacement,
    Merci Mon frère.

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

Discussions similaires

  1. Comment modifier une cellule dans un JTable
    Par @yoyo dans le forum Composants
    Réponses: 10
    Dernier message: 22/03/2006, 16h48
  2. [sql] comment modifier une contrainte
    Par imedg dans le forum Oracle
    Réponses: 5
    Dernier message: 11/03/2006, 06h54
  3. Réponses: 9
    Dernier message: 05/01/2006, 14h01
  4. Comment modifier une page affichée dans un TWebBrowser ?
    Par dreamincoco dans le forum Composants VCL
    Réponses: 7
    Dernier message: 24/03/2005, 14h07
  5. comment modifier une texture?
    Par tibyann dans le forum DirectX
    Réponses: 6
    Dernier message: 16/06/2004, 15h27

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