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 :

Modification et Update d'un champs "clé principale"


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 232
    Par défaut Modification et Update d'un champs "clé principale"
    Salut à tous

    Je voudrais modifier par une edition dans un DataGradView (que j'ai lier avec le DATASET : DS) toutes les colonnes y compris la clé principale.

    en cliquant sur un bouton Update j'appel la Méthode suivante :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    public void UpdateTable(string nameTable)
            {
                  //  con : ma connection OLE à un fichier Access 2003
                 //   DS : dataSet
                 //   DAdp : Dataadapter
                //   nameTable : nom de ma table
     
     
     
                   OleDbCommand comdUPDATE;
     
                string CommandText = "UPDATE " + nameTable + " SET IDObj=@IDObj ,NameParent=@NameParent,TypeObj=@TypeObj WHERE IDObj=@IDObj";
     
                comdUPDATE=DAdp.UpdateCommand = new OleDbCommand(CommandText, con);
     
                // IDObj : clé principale
                comdUPDATE.Parameters.Add(new OleDbParameter("@IDObj", OleDbType.VarChar, 50));
                comdUPDATE.Parameters.Add(new OleDbParameter("@NameParent", OleDbType.VarChar, 50));
                comdUPDATE.Parameters.Add(new OleDbParameter("@TypeObj", OleDbType.VarChar, 50));
     
                comdUPDATE.Parameters["@IDObj"].SourceVersion= DataRowVersion.Original; //!!!
                comdUPDATE.Parameters["@NameParent"].SourceVersion= DataRowVersion.Current;
                comdUPDATE.Parameters["@TypeObj"].SourceVersion= DataRowVersion.Current;
     
                comdUPDATE.Parameters["@IDObj"].SourceColumn = "IDObj";
                comdUPDATE.Parameters["@NameParent"].SourceColumn = "NameParent";
                comdUPDATE.Parameters["@TypeObj"].SourceColumn = "TypeObj";
     
                DataSet modifiedDS = DS.GetChanges(DataRowState.Modified);
     
     
                try
                {
                    con.Open();
                    DAdp.Update(modifiedDS.Tables[nameTable]);
                    DS.Clear();
                    DAdp.Fill(DS, nameTable);
                    con.Close();
     
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message.ToString());
     
                }
                finally { con.Close(); }
     
    		}
    L'exeption : Concurrency violation : the update command affected 0 of the expected 1 records

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    SET IDObj=@IDObj ... WHERE IDObj=@IDObj
    Il me semble qu'il faut 2 noms de paramétres différents, par exemple :
    @IDObj dans le SET
    @IDObj_Original dans le WHERE

Discussions similaires

  1. [VB.NET] Pb sur update à partir champs Textbox
    Par patdez dans le forum ASP.NET
    Réponses: 5
    Dernier message: 28/06/2006, 09h28
  2. UPDATE en ajoutant un 0 sur un champ de type "char"
    Par doum2 dans le forum Requêtes
    Réponses: 1
    Dernier message: 08/03/2006, 14h22
  3. Modification du nom d'un champ dans une table
    Par reef1 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/06/2004, 10h55
  4. Update d'un champ BLOB
    Par ZeKlubb dans le forum Connexion aux bases de données
    Réponses: 4
    Dernier message: 17/01/2004, 16h04

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