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

ASP.NET Discussion :

Mettre a jour la base de donnees a partir du datatable


Sujet :

ASP.NET

  1. #1
    Membre averti
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 33
    Par défaut Mettre a jour la base de donnees a partir du datatable
    Bonjour,
    J’ai un problème en essayant de mettre à jour ma base de données.

    J’ai une exception « La génération SQL dynamique de UpdateCommand n'est pas prise en charge pour un SelectCommand qui ne retourne pas des informations de colonne clé. »

    J’essaye de créer une cle primaire j’ai une autre exception « Ces colonnes n'ont pas actuellement de valeurs uniques. »
    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
     
     
    da = new OleDbDataAdapter("SELECT * FROM PRODUITS WHERE CODE = " + "'" + numeroProcessus + "'" + " ORDER BY RANG ", ctn);
                    bldr = new OleDbCommandBuilder(da);
                    ds = new DataSet();
                    bldr.DataAdapter = da;
                    da.Fill(ds, "PRODUITS");
                    DataTable datatable = ds.Tables["PRODUITS"];
     
     
                    int index;
                    datatable.DefaultView.Sort = "CODE ASC";
                    index = datatable.DefaultView.Find(numeroProcessus);
     
                    DataRow dr = datatable.Rows[index];
    //definition de la clé primaire composée
    datatable.PrimaryKey = new DataColumn[] { datatable.Columns["CODE"], datatable.Columns["RANG"] };
     
                    DataRow[] lignes = datatable.Select("CODE " + "'" + numeroProcessus + "'");
                    dr.BeginEdit();
                    dr["TYPE"] = 'E';
    dr.EndEdit();
     
     
     
     
                    bldr.GetUpdateCommand();
                    lignes = datatable.Select(null, null, DataViewRowState.ModifiedCurrent);
     
     
     
                    //da.UpdateCommand = bldr.GetUpdateCommand();
                    da.Update(datatable);
     
                }
    Merci pour vos reponses

  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
    Citation Envoyé par samiou_ Voir le message
    J’essaye de créer une cle primaire j’ai une autre exception « Ces colonnes n'ont pas actuellement de valeurs uniques. »
    Tu n'as pas le choix, il faut forcément créer une clé primaire ; de toutes façons, une table doit toujours avoir une clé primaire (à de très rares exceptions près). Et si la colonne qui doit servir de clé contient déjà des doublons, pas le choix : il faut assainir les données.

    Pour repérer les lignes en doublon, tu peux faire une requête comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select CODE, count(*)
    from PRODUITS
    group by CODE
    having count(*) > 1

  3. #3
    Membre averti
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 33
    Par défaut
    Merci pour ta réponse,
    j'ai crée les clés primaires parce que ma table possède 2 clés primaires la premiere colonne contient des doublons c'est obligé, mais toujours la même exception
    Depuis vendredi je cherche la solution, je ne trouve pas

  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 samiou_ Voir le message
    j'ai crée les clés primaires parce que ma table possède 2 clés primaires la premiere colonne contient des doublons c'est obligé
    Tu veux dire que la clé primaire est composée de 2 colonnes ? C'est pas un problème, tu peux tout à fait définir ta clé comme ça ; à condition que les valeurs combinées de ces 2 colonnes soient distinctes, et que le SGBD supporte les clés composites (c'est le cas de la plupart des SGBD a priori)

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table PRODUCTS add primary key (CODE, AUTRE_COLONNE)

  5. #5
    Membre averti
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 33
    Par défaut
    Merci pour ta réponse.

  6. #6
    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 samiou_ Voir le message
    Merci pour ta réponse.
    Est-ce que ça règle le problème ?

  7. #7
    Membre averti
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 33
    Par défaut
    j'ai fait des requetes de mis a jour, je n'ai pas pu attribue des clés primaires à mes datatable, coté base de données je n'ai pas le droit de le faire.
    mais ç a fonctionne très bien
    Merci

Discussions similaires

  1. Formulaire de mise à jour de base de données
    Par platonus2002 dans le forum Langage
    Réponses: 2
    Dernier message: 30/07/2007, 11h16
  2. Mettre à jour une base de données depuis un pc
    Par Death83 dans le forum MATLAB
    Réponses: 11
    Dernier message: 12/11/2006, 17h58
  3. Réponses: 2
    Dernier message: 10/08/2006, 09h44
  4. [C# 2.0] Comment mettre à jour ma base de données Access ?
    Par Leesox dans le forum Accès aux données
    Réponses: 1
    Dernier message: 30/05/2006, 20h16
  5. mettre a jour sa base de donnée
    Par yamissa dans le forum Langage SQL
    Réponses: 1
    Dernier message: 25/08/2005, 14h40

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