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

Accès aux données Discussion :

Problème insertion et modification données dans SQL Server CE


Sujet :

Accès aux données

  1. #1
    Lucas Panny
    Invité(e)
    Par défaut Problème insertion et modification données dans SQL Server CE
    Bonjour,

    Je m'essaie depuis peu à l'utilisation du SQL Serveur embarqué gratuit!
    J'utilise alors Ado.Net Entity Framework pour m'y connecter et manipuler les données.
    Je n'ai aucun soucis avec la lecture des données mais mon problème c'est sur les ajouts (insertions) et modifications (update) de données car bien que j'ai bien appelé SaveChanges() lorsque je lis la table concernée, aucune donnée n'est insérée. Voici un exemple de code et je confirme qu'il n'y a aucune exception qui se produit:
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    livres objBook = new livres();
    objBook.CodeBook = "BK1245";
    objBook.CodeResp = "CIN7812";
    objBook.TransactionDate = DateTime.Now;
    objBook.Points = 45;
    objBook.Montant = 3.45;
    context.AddTolivres(objBook);
     
    context.SaveChanges();

    En fait, je visionne ma base avec l'onglet Server Explorer de Visual Studio, y a-t-il d'autres moyens de faire?

    Lucas
    Dernière modification par Lucas Panny ; 05/08/2011 à 15h40.

  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
    Regarde si ton problème n'est pas à cause de ça :
    http://www.developpez.net/forums/d98...b/#post5503952

  3. #3
    Lucas Panny
    Invité(e)
    Par défaut
    Non, je n'utilise pas de OleDbCommand & co mais de l'Entity Framework!!

    Je projette de rendre l'application portable dans la référence est locale pour System.Data.SqlServerCe (= System.Data.SqlServerCe.dll) mais il y a aussi un autre DLL "System.Data.SqlServerCe.Entity.dll" dont je ne sais pas à quoi cela sert car mon application marche très bien malgré son absence!
    Dernière modification par Lucas Panny ; 05/08/2011 à 17h36.

  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
    Peut importe la technique d'accès à la base, le problème est le même du moment que la BDD est un fichier qui appartient à ton projet. Tu as regardé la propriété "Copier dans le répertoire de sortie" ?

  5. #5
    Lucas Panny
    Invité(e)
    Par défaut
    C'est "copy if newer" (copier si plus récent).

    OUI tu as raison, c'est le fichier dans bin\debug qui est modifié. Merci! Je dois donc me connecter à ce fichier là que celui dans la racine de mes sources!

    Je suis ridicule!

    Merci TOMLEV

  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 : 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
    Citation Envoyé par Lucas Panny Voir le message
    C'est "copy if newer" (copier si plus récent). Tu dis donc que le fichier .sdf dans Debug/Bin est modifié mais pas celui dans la racine de mes sources!?
    Oui c'est ça
    Le fichier .sdf qui est dans tes sources est celui "de référence", celui qui est dans bin/debug est une copie de travail. Dans un sens c'est logique : les données que tu manipules dans le programme n'ont pas à faire partie des sources (à part peut-être certaines données statiques de référence).

  7. #7
    Lucas Panny
    Invité(e)
    Par défaut
    C'est clair!
    Mon soucis actuel c'est que je ne peux pas insérer un autre enregistrement car ma clé primaire n'est pas en auto-increment. Comment faire en SQL Server CE?

    En fait, connaissez vous des outils pour créer des tables, importer et exporter du SQL pour Sql Server CE car là je n'ai que Visual Studio pour manipuler ma base?

  8. #8
    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
    Citation Envoyé par Lucas Panny Voir le message
    Mon soucis actuel c'est que je ne peux pas insérer un autre enregistrement car ma clé primaire n'est pas en auto-increment. Comment faire en SQL Server CE?
    Bah dans ce cas il faut spécifier la valeur de la clé explicitement, comme pour les autres colonnes...

    Citation Envoyé par Lucas Panny Voir le message
    En fait, connaissez vous des outils pour créer des tables, importer et exporter du SQL pour Sql Server CE car là je n'ai que Visual Studio pour manipuler ma base?
    SQL Server Management Studio

  9. #9
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Salut,

    Pour information, si tu souhaites définir ta colonne comme auto-increment dans SQL Server Compact, il suffit juste dans les propriétés de la colonne, au niveau de la liste déroulante "Identity Column", sélectionner le nom de la colonne.

    @++
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  10. #10
    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
    Citation Envoyé par Hinault Romaric Voir le message
    Pour information, si tu souhaites définir ta colonne comme auto-increment dans SQL Server Compact, il suffit juste dans les propriétés de la colonne, au niveau de la liste déroulante "Identity Column", sélectionner le nom de la colonne.
    Oui mais les colonnes identity fonctionnent pas avec Entity Framework pour SQL Server CE (du moins avec la 3.5 ; c'est résolu dans SQL Server CE 4.0)

  11. #11
    Lucas Panny
    Invité(e)
    Par défaut
    C'est pas bon pour moi! Effectivement, je suis sous la 3.5 et VS2008!

    Mais au moins est-ce qu'on peut définir un "Identity column" avec Server Explorer sous Visual Studio 2008 selon vous?

    Concernant Sql Server Management Studio, j'utilise SSMSE c'est à dire la version Express (indiqué par le lien de tomlev) mais cela ne supporte pas du tout le fichier .sdf!

  12. #12
    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
    Citation Envoyé par Lucas Panny Voir le message
    Mais au moins est-ce qu'on peut définir un "Identity column" avec Server Explorer sous Visual Studio 2008 selon vous?
    Oui, sélectionne la colonne et affiche ses propriétés
    Mais ça va pas beaucoup t'avancer vu que ça marchera pas avec Entity Framework... La solution la plus simple, si tu peux, est d'utiliser un clé primaire de type GUID. Comme ça, quand tu crées une entité, tu as juste à initialiser la clé avec GUID.NewGuid()


    Citation Envoyé par Lucas Panny Voir le message
    Concernant Sql Server Management Studio, j'utilise SSMSE c'est à dire la version Express (indiqué par le lien de tomlev) mais cela ne supporte pas du tout le fichier .sdf!
    Ah ? La dernière fois que j'ai testé ça marchait pourtant... mais je sais plus si c'était la version Express

  13. #13
    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
    Ou alors c'était la version 2008, je sais plus trop...

  14. #14
    Lucas Panny
    Invité(e)
    Par défaut
    En fait est-ce qu'on peut utiliser la version 2008 de Management Studio avec SQL Server 2005 et VS2008!

  15. #15
    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
    A priori oui

  16. #16
    Lucas Panny
    Invité(e)
    Par défaut
    Finalement, on peut Management Studio 2008 mais il faut également installer SQL Server 2008 pour le voir opérationnel!

    tomlev > J'ai suivi ton conseil d'utiliser uniqueidentifier comme clé primaire!

    Pour résumer, je suis sous .NET 3.5 donc je dois faire face à plusieurs désagréments qui ne sont résolus qu'au 4! Par exemple le fait qu'un champ de type "ntext" ou "nvarchar" n'est pas utilisable dans WHERE!

Discussions similaires

  1. insertion date et heure dans SQL server
    Par robinash dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/01/2008, 17h40
  2. syntaxe d'insertion d'une variable dans SQL Server
    Par hariri dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/04/2007, 17h00
  3. Problème de manipulation d'enregistrement dans sql server
    Par labvivi dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/03/2007, 12h35
  4. intégrer une base de donnée dans sql server
    Par gock dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 11/01/2006, 23h27
  5. Importer des données dans sql server avec DELPHI ???
    Par moutanakid dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2004, 17h22

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