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 :

probleme update mode deconnecté


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 175
    Points : 18
    Points
    18
    Par défaut probleme update mode deconnecté
    bonjour
    j'ai une erreur dans mon programme c# en mode deconnecté
    mais je n'ai trouvé aucune solution
    voila le 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    using System.Data;
    using System.IO;
    using System;
    using System.Data.OleDb;
     
    namespace ExempleAdoNetCSharp
    {
        /// Description résumée de OleDbDataSet.
     
        public class OleDbDataSet
        {
            public static void Main()
            {
                string strConnexion = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Khalil\Documents\Visual Studio 2010\WebSites\TpCompteModeDeconnecté\App_Data\baseCompte.accdb";
                string strRequete = "SELECT '' as [id_compte], '' as [titulaire],'' as [solde] from Compte UNION SELECT [id_compte],[titulaire], [solde] FROM [Compte]";
     
                    OleDbConnection oConnection = new OleDbConnection(strConnexion);
                    oConnection.Open();
     
                    // Chargement de la liste des catégories dans oDataSet
                    OleDbDataAdapter oOleDbDataAdapter = new OleDbDataAdapter(strRequete, oConnection);
     
                    OleDbCommandBuilder dbco = new OleDbCommandBuilder(oOleDbDataAdapter);
     
                    DataSet oDataSet = new DataSet("Compte");
                    oOleDbDataAdapter.Fill(oDataSet,"Compte");
     
                    // Affichage du contenu de oDataSet avant insertion de données
     
                    System.Console.WriteLine(" *** Liste des catégories avant la mise à jour *** ");
                    for (int i=0 ; i < oDataSet.Tables["Compte"].Rows.Count ; i++)
                    {
                        System.Console.WriteLine("\t{0}\t{1}",oDataSet.Tables["Compte"].Rows[i][0].ToString(),oDataSet.Tables["Compte"].Rows[i][1].ToString());
                    }
                    Console.WriteLine("\n");
     
                    // Remplissage de la commande InsetCommand
                    oOleDbDataAdapter.InsertCommand = new OleDbCommand("INSERT INTO Compte(titulaire, solde) Values(@titulaire,@solde)",oConnection);
                    oOleDbDataAdapter.InsertCommand.Parameters.Add("@titulaire", OleDbType.Char, 15, "titulaire");
                    oOleDbDataAdapter.InsertCommand.Parameters.Add("@solde", OleDbType.Integer, 16, "solde");
     
                    DataRow oDataRow;
                    byte [] byteArray = { 0x00,0x00};
     
                    oDataRow = oDataSet.Tables["Compte"].NewRow();
                    oDataRow["titulaire"]= "iiiiiiii";
                    oDataRow["solde"]= "120000";
     
                    oDataSet.Tables["Compte"].Rows.Add(oDataRow);
     
                    oOleDbDataAdapter.UpdateCommand = new OleDbCommand("UPDATE Compte SET titulaire = @titulaire, solde = @solde WHERE id_compte = @id_compte", oConnection);
                    oOleDbDataAdapter.UpdateCommand.Parameters.Add("@id_compte", OleDbType.Char, 15, "id_compte");
                    //OleDbParameter parameter = oOleDbDataAdapter.UpdateCommand.Parameters.Add("@id_compte", SqlDbType.Int);
                    //parameter.SourceColumn = "id_compte";
                    //parameter.SourceVersion = DataRowVersion.Original;
                    oOleDbDataAdapter.UpdateCommand.Parameters.Add("@titulaire", OleDbType.Char, 15, "titulaire");
                    oOleDbDataAdapter.UpdateCommand.Parameters.Add("@solde", OleDbType.VarChar, 40, "solde");
     
                    foreach (DataRow row in oDataSet.Tables["Compte"].Rows)
                    {
                        if (row["id_compte"].Equals("64"))
                        {
     
                            row["titulaire"] = "je susi";
                            row["solde"] = "2344";
                            break;
                        }
                    }
     
     
                    oOleDbDataAdapter.RowUpdated += new OleDbRowUpdatedEventHandler(OnRowUpdated);
                    oOleDbDataAdapter.Update(oDataSet, "Compte"); 
                    // Mise à jour de la source de données à partir du DataSet
                    DataTable table = oDataSet.Tables["Compte"];
     
                    // First process deletes.
                    oOleDbDataAdapter.Update(table.Select(null, null, DataViewRowState.Deleted));
     
                    // Next process updates.
                    oOleDbDataAdapter.Update(table.Select(null, null,
                      DataViewRowState.ModifiedCurrent));
     
                    // Finally, process inserts.
                    oOleDbDataAdapter.Update(table.Select(null, null, DataViewRowState.Added));
     
                    // Rechargement des données de la source mise à jour
                    oDataSet.Clear();
                    oOleDbDataAdapter.Fill(oDataSet,"Compte");
     
                    // Affichage du contenu de oDataSet après insertion d'une ligne de données
                    Console.WriteLine(" *** Liste des catégories après la mise à jour *** ");
                    for (int i=0 ; i < oDataSet.Tables["Compte"].Rows.Count ; i++)
                    {
                        Console.WriteLine("\t{0}\t{1}",oDataSet.Tables["Compte"].Rows[i][0].ToString(),oDataSet.Tables["Compte"].Rows[i][1].ToString());
                    }
                    Console.ReadLine();
                    oConnection.Close();
                }
            // Event procedure for OnRowUpdated
            protected static void OnRowUpdated(
              object sender, OleDbRowUpdatedEventArgs args)
            {
                string strConnexion = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Khalil\Documents\Visual Studio 2010\WebSites\TpCompteModeDeconnecté\App_Data\baseCompte.accdb";
     
     
                OleDbConnection oConnection = new OleDbConnection(strConnexion);
                oConnection.Open();
                // Include a variable and a command to retrieve the identity value from the Access database.
                int newID = 0;
                OleDbCommand idCMD = new OleDbCommand(
                  "SELECT @@IDENTITY", oConnection);
     
                if (args.StatementType == StatementType.Update)
                {
                    // Retrieve the identity value and store it in the CategoryID column.
                    newID = (int)idCMD.ExecuteScalar();
                    args.Row["id_compte"] = newID;
                }
            }
            }
        }
    et l'erreur :
    Violation de l'accès concurrentiel : UpdateCommand a affecté 0 des enregistrements 1 attendus.
    sachant que id_compte est auto increment clé primaire
    est ce que vous avez une idée
    merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Comment veux tu que nous puissions t'aider avec le code que tu as fournis, il est illisible.

    Reformate le si tu veux que l'on t'aide.

Discussions similaires

  1. [MFC] Probleme update d'un BITMAP dans une boite.
    Par Platypus dans le forum MFC
    Réponses: 5
    Dernier message: 21/11/2005, 13h31
  2. Probleme Update avec chamd decimal
    Par ouellet5 dans le forum Access
    Réponses: 1
    Dernier message: 14/10/2005, 11h57
  3. Réponses: 2
    Dernier message: 13/06/2005, 16h37
  4. Probleme UPDATE resultat trop long
    Par Tonio_1394 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/10/2004, 12h50
  5. [TP]Problème de modes graphiques sous Windows XP
    Par Gabi dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 04/04/2004, 18h25

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