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 :

Base de donnée embarqué


Sujet :

C#

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Par défaut Base de donnée embarqué
    Bonjours,

    Je voudrai me faire une petite appli avec un base de donné assé "chiadé" pour gérer des recettes de cuisine, stock de produit, fournisseur, etc..

    Pour le moment je sais faire cela via l'installation sur le PC ou un serveur d'un SGBDR ou via la sérialisation avec des fichier XML par exemple.
    Mais ce que je voudrai c'est pouvoir "embarquer" la base de donné dans mon appli afin que le tout soit sur une clé USB par exemple et donc utilisable sur n'importe quel PC avec ou sans Internet.

    Pouvez vous m'aiguiller.

    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    SQL Server CE (Compact Edition), c'est justement fait pour ça. Je l'utilise et ça fonctionne #1

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Par défaut
    Merci beaucoup, je test ca de suite =)

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    en plus petit y a sqlite (utilisé par firefox je crois)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mai 2007
    Messages : 59
    Par défaut
    Avec SQL CE, tu va avoir sur le matériel mobile un fichier ".sdf" qui est en faite ta base de données.

    L'accès à ce fichier fonctionne comme un SGBD et tu peux y faire des requêtes comme sur une base de données.
    SELECT, INSERT, DELETE...

    Cela fonctionne très bien à partir du moment où tu n'as pas d'accès concurrentiels aux bases.

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    en plus petit y a sqlite (utilisé par firefox je crois)
    SqLite a l'avantage d'être très rapide sur *certaines* opérations (pas toutes ....) , et de disposer de fonctions assez originales (tel que la possibilité" d'attacher une base à une autre) mais est assez pauvre sur tout le reste (intégrité référentielle, etc ....).

    De son coté, Sql Server CE présente le gros avantage de pouvoir si nécessaire par la suite supporter une réplication de fusion avec une base Sql Server standard.

    Par ailleurs, en phase de développement, le fait de pouvoir ouvrir directement la base SQL server CE sur le téléphone depuis SSME si le téléphone est connecté au PC via ActiveSync est un plus indéniable.

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par pimos Voir le message
    Cela fonctionne très bien à partir du moment où tu n'as pas d'accès concurrentiels aux bases.
    Il est très possible de gérer des accès concurrents à une base SQL CE, avec quelques précautions (on peut même partager une connection unique entre plusieurs threads, avec un peu de prudence : il suffit de rendre thread safe sa DAL).

  8. #8
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mai 2007
    Messages : 59
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Il est très possible de gérer des accès concurrents à une base SQL CE, avec quelques précautions (on peut même partager une connection unique entre plusieurs threads, avec un peu de prudence : il suffit de rendre thread safe sa DAL).
    Ce n'est pas le sujet mais je bosse sur une application déployer sur 10 000 appareils mobiles et les logs montrent beaucoup d'exception levé par SQL Server CE. L'accès concorrentiel a été banis (comme le broadcast) et nous avons beaucoup moins de problèmes.

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    ne cherchons pas trop loin non plus, il veut une base de données pour des recettes de cuisine, ca ne sert à rien de lui parler de multithreading et d'intégrité relationnelle ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Par défaut
    Merci pour toutes vos réponse =)

    Je suis entrain d'étudier cela. J'aurai pas de probleme concurenciel c'est juste pour faire une petit appli pour continuer a apprendre par la pratique.

    J'ai juste un gros cas d'école a savoir il va faloir que je change de lunettes.

    Je me suis référé a MSDN pour voir comment générer ma base etc.. en suivant les indication a la lettre (j'utilise SQL Server 2008)

    http://msdn.microsoft.com/fr-fr/libr...3(SQL.90).aspx

    Sauf qu'à la fin :
    Compactage de la base de données
    ----------------------------------
    Dans l'Explorateur d'objets, cliquez avec le bouton droit sur SQL Server Compact Edition [Poste de travail\...\sqlmobile], puis choisissez Propriétés.
    Ben ca j'ai pas "SQL Server Compact".
    J'ai bien un icone "SQL Server Compact" dans la fenetre serveur inscrit mais pas grand choses dedans et en tous cas pas les choix indiqué par Microsoft.

    Si vous pouvez m'aiguiller encore ^^

  11. #11
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par pimos Voir le message
    Ce n'est pas le sujet mais je bosse sur une application déployer sur 10 000 appareils mobiles et les logs montrent beaucoup d'exception levé par SQL Server CE. L'accès concorrentiel a été banis (comme le broadcast) et nous avons beaucoup moins de problèmes.
    Je n'en ai que 3000 mais je n'ai aucune exception remontée liée aux concurences d'accès multithread sur la base embarquée : simplement, la DAL a été conçue pour être thread safe.

    Sinon, qu'entends tu par "broadcast" ?

  12. #12
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mai 2007
    Messages : 59
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Sinon, qu'entends tu par "broadcast" ?
    désolé ça n'a rien avoir. C'est l'envoie d'un message à tout les processus via l'OS. Microsoft en conseille l'utilisation sauf que quand tu le mets en place ça marche pas!

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Par défaut
    Ouai bon ben en fait je créé directement ma Base SQL CE dans Visual studio 2008 même si je trouve les possibilité de "gestion" (autoincrémentation de la clé par exemple" vachement moins pratique qu'une base créé sous SQL Server ou par code...

    Ca va le faire.

    Merci a tous de pour vos infos =)

  14. #14
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Par défaut
    Hummm,...

    Apres plusieurs tests j'aurais besoin de confirmation ou d'indication pour la connexion à ce type de bases de données.

    De prime abord je pense que l'on ne peut faire qu'une connexion type ADO déconnecté.
    Même si j'ai pas testé ce mode complètement, via l'interface VS2010 j'ai créé ma base, des tables,... fait la connexion et me suis retrouvé avec mon DataSet et mon BindingSource,... Bref, tout ce qu'il me faut pour un ADO déconnecté.

    Mais voila, je me suis dis c'est en local donc pas à me soucier des accès serveur alors essayon en déconnecté.
    J'ai retiré les connexions et les fichiers créé et en rajoutant les using System.Data.SqlClient et using System.Configuration; créé mon SqlConnection sqlConnection; et dans le load de ma Form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void FormAccueil_Load(object sender, EventArgs e)
    {
      string connectionString = ConfigurationManager.ConnectionStrings["DB_MaBase"].ConnectionString;
    sqlConnection = new SqlConnection(connectionString);
    sqlConnection.Open();
    }
    Pouf Erreur : sqlConnection ne serrais pas instancier. A bon ???
    Bon ben je vais faire plus de base et pas me servire du fichier app.config

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private void FormAccueil_Load(object sender, EventArgs e)
    {
     string connectionString = "Data Source=|DataDirectory|DB_MaBase.sdf;Initial Catalog=DB_MaBase;Integrated Security=True";
    sqlConnection = new SqlConnection(connectionString);
    sqlConnection.Open();
    }
    Erreur: trouve pas le serveur. J’ai pourtant bien collé ma DB_MaBase.sdf dans la racine de mon projet et aussi dans le dossier bin\debug tant qu’à faire.

    Rien à faire ca veux pas.

    Première conclusion l'utilisation des bases CE ne se fait qu'en mode ADO Déconnecté.

    Vrai / Faux ?

    Comment vous y prenez vous s'il vous plaît ?

    Merci

  15. #15
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    la connexion à une base de donnée en .net se fait dans TOUS les cas via un objet connexion

    donc je ne comprends pas trop ta question finale, .net étant plutot toujours en mode déconnecté, on se connecte, on rapatrie les données, et il n'y a plus de lien sur les données meme si la connexion n'est pas fermé
    et l'objet connexion pour sql server ou sql server ce est le même, seule la chaine de connexion change, soit on spécifié l'instance, soit le chemin du fichier

    moi je dirais que ca doit etre |DataDirectory| qui ne fait pas ce qu'il faut
    essaye de spécifier le chemin en absolu
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  16. #16
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Par défaut
    Merci Pol63

    Citation Envoyé par AIDExpress Voir le message
    ...Mais voila, je me suis dis c'est en local donc pas à me soucier des accès serveur alors essayon en déconnecté.
    Je de vais être bien fatigué hier soir. J'ai rectifié mon texte ^^

    Reprenant mes cours et exercices sur l’ADO Connecté j’avais modifié le DataDirectory mais peut être pas suffisant ou comme il faut c’est bien possible.

    Je vais revoir ca cet aprèm après les cours et vous tiens au courant.

    Merci de votre aide.

  17. #17
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 75
    Par défaut
    Ouaip, bon, ben j'avais pas cherché correctement....

    Tout est là ftp://ftp-developpez.com/tahe/fichie...csharp2008.pdf

    Alors si je m'en sort pas j'irrais faire du macramé en Ardèche XD

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

Discussions similaires

  1. Base de données embarquée sous Windows
    Par fawzi dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 19/10/2006, 18h31
  2. Base de données embarquée sous Windows
    Par fawzi dans le forum Windows
    Réponses: 2
    Dernier message: 03/10/2006, 16h49
  3. [C#]Base de données "embarquée"
    Par archeon dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/05/2006, 12h17
  4. Base de données embarquée
    Par RICAUD dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 14/07/2005, 08h37
  5. Base de données embarquée sous Windows
    Par bouiboui dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 12/08/2004, 10h38

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