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 :

modifier une ligne par DataSet


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 34
    Points : 21
    Points
    21
    Par défaut modifier une ligne par DataSet
    salut,
    je veux apporter une modification d'une valeur dans une ligne en mode déconnecté
    en résumé voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mon_dataset.Table["table"].Rows.[0]["colonne"]=valeur;
    sauf que les modification sont pas appliqués (dans la base de donnée)

    que doit-je faire?

  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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Quand tu fais ça, ça ne change que les données en mémoire... Pour répercuter les modifications sur la BDD, il faut faire un Update avec un DataAdapter

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    mon_dataset.Tables["table"].Rows.[0]["colonne"]=valeur;
    OleDbDataAdapter da = new OleDbDataAdapter();
    da.Update(ds.Tables["table"]);
    ça marche pas donc je suis obligé de faire OleDbCommand et lui passé une requete sql update ?

  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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    il faut définir les UpdateCommand/InsertCommand/DeleteCommand dans ton DataAdapter, ou alors définir une SelectCommand et utiliser un CommandBuilder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mon_dataset.Tables["table"].Rows.[0]["colonne"]=valeur;
    OleDbDataAdapter da = new OleDbDataAdapter("select * from table", connexion);
    OdbcCommandBuilder builder = new OdbcCommandBuilder(da);
    da.Update(ds.Tables["table"]);

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 34
    Points : 21
    Points
    21
    Par défaut
    navré tomlev mais ça marche pas avec CommandBuilder qui nécessite que des requête simple.

    Les TableAdapters requièrent des commandes UPDATE, INSERT et DELETE valides pour exécuter une opération d'enregistrement avec succès.
    Les TableAdapters génèrent des instructions INSERT, UPDATE et DELETE en fonction de l'instruction SELECT d'origine entrée dans l'Assistant. Parfois, l'instruction SELECT ne fournit pas suffisamment d'informations pour que l'adaptateur puisse générer les commandes nécessaires à la création des commandes INSERT, UPDATE et DELETE requises pour réussir un enregistrement. Cette situation se rencontre souvent lorsque la table de base de données ne comporte pas de colonne de clé primaire, ou que la commande SELECT utilise JOINS. Pour plus d'informations, consultez Comment : modifier des TableAdapters.
    source: MSDN
    et c'est le cas
    donc j'ai opté pour la deuxième solution.

    ciao et merci pour l'aide

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

Discussions similaires

  1. [SELECT DISTINCT] [Débutant] Ne garder qu'une ligne par id
    Par toniolol dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 12/12/2005, 16h07
  2. Réponses: 3
    Dernier message: 29/08/2005, 16h44
  3. Modifier une ligne d'un fichier
    Par jula dans le forum Linux
    Réponses: 4
    Dernier message: 08/04/2005, 17h24
  4. Comment faire pour modifier une ligne dans une DBGrid?
    Par Nico62 dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2005, 12h24
  5. Modifier une image par pixels
    Par mateo.14 dans le forum MFC
    Réponses: 10
    Dernier message: 21/01/2005, 15h09

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