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

VB.NET Discussion :

probléme System.Data.UpdateException vb.net [Débutant]


Sujet :

VB.NET

  1. #1
    Membre actif Avatar de fahdijbeli
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 281
    Points : 240
    Points
    240
    Par défaut probléme System.Data.UpdateException vb.net
    bonjour
    je fais une application vb.net en utilisant ADO.net framework entity model et j'ai utilisé Linq To Sql pour les requêtes .j'ai testé l'interrogation ça marche et le delete ça marche aussi , mais l'ajout ça marche pas il me déclenche un e exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Une exception de première chance de type 'System.Data.UpdateException' s'est produite dans System.Data.Entity.dll
    et j'interpréte l'exception avec innerException il m'affiche ça:
    voire piéce jointe
    et il me rederige vers mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Public Sub AddSport(ByVal sport As EntityObject)
            Try
                _ContexteDonnees.AddObject(sport.GetType().Name, sport)
                _ContexteDonnees.SaveChanges()
                _ContexteDonnees.Refresh(RefreshMode.ClientWins, sport)
            Catch ex As System.Data.UpdateException
                Console.WriteLine(ex.Message)
                Console.WriteLine(ex.InnerException)
            End Try
        End Sub
    exactement dans la méthode savechanges().
    je sais pas comment je résout ce problème .
    merci.
    Images attachées Images attachées  

  2. #2
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Le message d'erreur est dans ton screen :
    "Les clés et les valeurs générées par le serveur ne sont pas prises en charge par SQL Server Compact."

    Voir Entity Framework (SQL Server Compact)

    Et plus précisément le paragraphe :
    SQL Server Compact 4.0 prend en charge les entités avec des clés ou des valeurs générées par le serveur en cas d'utilisation avec Entity Framework, uniquement si le type de clé est Colonnes d'identité.

    Lors de l'utilisation d'Entity Framework, les clés d'une entité peuvent être marquées comme étant générées par le serveur. Cela permet à la base de données de générer une valeur pour la clé durant l'insertion ou la création d'entité. De plus, zéro propriété d'une entité ou plus peuvent être marquées en tant que valeurs générées par le serveur. Pour plus d'informations, consultez la rubrique relatif au Store Generated Pattern dans la documentation Entity Framework.
    Entity Framework vous permet de définir des types d'entité avec des clés ou des valeurs générées par le serveur. Toute opération de manipulation de données sur une entité qui possède des valeurs générées par le serveur qui ne sont pas de type Identity lève une exception « Non pris en charge ».
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  3. #3
    Membre actif Avatar de fahdijbeli
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 281
    Points : 240
    Points
    240
    Par défaut
    merci pour l'aide , maintenant je dois faire quoi si les clés ne sont pas compatibles en plus j'utilise sql server compact 3.5 pas 4.0 .

  4. #4
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Soit tu upgrades en 4.0, soit tu assignes tes clés au niveau du code et non plus de la BDD en mettant ta colonne d'ID en Guid et en les assignant avec Guid.NewGuid(), soit tu trouves une autre façon de générer tes clés uniques selon d'autres méthodes.

    Oui, ça craint, je suis d'accord.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  5. #5
    Membre actif Avatar de fahdijbeli
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 281
    Points : 240
    Points
    240
    Par défaut
    ok merci .

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 436
    Points : 963
    Points
    963
    Par défaut
    Si ça peut t'aider, j'avais il y a 5, 6 ans, travaillé sur un projet avec un problème similaire.

    Du coup, il y avait une table comme ceci :

    XX_ID_GENERATOR (code, LastId)

    pour chacune des tables de la DB, il y avait une ligne dans XX_ID_GENERATOR avec en code le nom de la table et LastId représentait la dernière clé enregistré pour chaque table.

    Pour insérer, ils faisaient insert into maTable( (select LastId from XX_ID_GENERATOR where code = 'maTable') +1 , etc etc etc)

    Si l'insertion était commit, ils faisaient un update XX_ID_GENERATOR set LastId = LastId +1 where code = 'maTable'


    (je n'ai pu l'architecture exacte en tête mais c'était ce principe) et ça permettait de pallier à ce problème. (je crois que le problème était que les Id n'étaient pas autogenerated : flagué identity. (une DB qui datait des années 90 donc MERISE, ils connaissaient pas) et c'était le moyen le plus simple d'assurer les migrations entre différentes version de SQL Serveur pour eux.

    Après je dis peut être des bêtises (avaient-ils un champ LastId ou NextId ? structure tel que je la décrit ?), c'est déjà très loin et je n'ai pas vraiment mis le nez dans le code : je me contentais d'appeler les fonctions qui s'occupaient de me récupérer l'id et de faire une incrémentation)
    "S'adapter, c'est vaincre" - Cellendhyll de Cortavar

  7. #7
    Membre actif Avatar de fahdijbeli
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2012
    Messages : 281
    Points : 240
    Points
    240
    Par défaut
    ok merci pour l'information c'est noté .

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/07/2009, 21h42
  2. probléme avec System.Data.DBConcurrencyException
    Par dv-2008 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 16/04/2009, 02h33
  3. problème de référence system.data.common
    Par sergei88 dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 20/01/2008, 23h13
  4. Problème avec System.Data.Odbc
    Par Chii-san dans le forum VB.NET
    Réponses: 2
    Dernier message: 14/08/2007, 14h41
  5. [VB.NET] Ou importer les namespaces com System.data.. ?
    Par beegees dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/06/2006, 11h06

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