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

Linq Discussion :

Problème de création de base de donnée avec linq


Sujet :

Linq

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut Problème de création de base de donnée avec linq
    Bonjour à tous,
    J'ai actuellement un souci avec le création d'une BD. Voici le code que j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ClasseDataContext maBase = new ClasseDataContext (@"E:\cheminDAcces\nomDeMaBase.mdf");
    // test s'il existe un base de donnée à l'adresse indiqué
    if !(maBase.DatabaseExists())
    {
    <div style="margin-left:40px">
    // Cération de la nouvelle table
       maBase.DatabaseCreate();
     
    // Reste du code mais sans intérêt ici
       .
       .
       .</div>
    }
    Si la base existe pas de soucie, il elle n'a jamais existé pareil mais si elle a existé et que je supprime les fichier maBase.mdf et maBase.ldf dans l'explorateur maBase.DatabaseExists() retourne bien la valeur false mais maBase.DatabaseCreate() me déclenche l'exception
    La base de données 'E:\cheminDAcces\nomDeMaBase.mdf' existe déjà. Choisissez un autre nom de base de données.
    J'aimerai savoir si vous connaissiez l'origine de ce problème et surtout si vous saviez comment le résoudre ou du moins vers ou chercher car cela fait près de 2 jours que je tente de trouver une solution sur le web sans succès.

    Outils utilisés pour ce projet : Visual Studio 2008 , SqlServeur 2005 , .NET Framework 3.5

    PS: si je ne suis pas dans la bonne section n'hésitez pas à me l'indiquez

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Il aurait été utile de préciser l'OS.
    Vista par exemple gère des dossiers virtuels qui peuvent poser de genre de problème.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut
    Alors par rapport à ça, je ne suis pas seul à travailler sur ce code et nous avons des OS différents : XP et Vista
    Mais sur les deux nous obtenons le même soucis.
    Mais je n'était pas au courant pour cette histoire de dossier virtuel, je vais chercher dans se sens en attendant d'avoir une autre réponse pouvant m'aider.

    Encore merci Guardian

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    Tente un petit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * from sys.databases
    , tu verras la liste des bases existantes, je parie que ta base supprimée en fera partie. Si c'est le cas, il faudra nettoyer cela avec un zoli DROP DATABASE en sql avant de refaire le DatabaseCreate()

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut
    Je le met à quel niveau ?
    - Je crée une méthode dans la classe LinqToSQL de la Base de donnée que je veux instancier et je la lance depuis un main ?
    - Je passe par un outil de Visual Studio et je saisie directement la requête dedans ?

    Je suis un peu "nouveau" dans le développement hors SGBD donc je ne sais pas trop comment mis prendre

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    A toi de voir. Je te disais ça comme vérification, donc avant tout à saisir dans ton outil de gestion/consultation favori (genre management studio pour sql server...). Si tu passes par la, n'oublie par le use MaDatabase dans l'editeur avant de faire la requête, pour être sur la bonne bdd.

    Après, si tu veux gérer le cas de figure de ta bdd dans ton soft, à la volée, il te faudra écrire et exécuter les requêtes SQL dans ton soft et les lancer (SqlConnection, SqlCommand, DbDataReader), remets-en toi aux tutos sur le site.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut
    Justement l'idée était que quelque part (et c'est la qu'est tout le problème) est gardé en mémoire la liste des bases que j'ai crée.
    Mon objectif est de trouver où.

    Après, si tu veux gérer le cas de figure de ta bdd dans ton soft, à la volée, il te faudra écrire et exécuter les requêtes SQL dans ton soft et les lancer (SqlConnection, SqlCommand, DbDataReader), remets-en toi aux tutos sur le site.
    C'est exactement ce que je veux faire mais comment puis-je me connecter à une bdd qui physiquement n'existe pas ? Après sur les objets que je peut interroger, j'ai bien System ("sys" y'a na pas trouvé ) mais il n'a pas d'attribut (table) nommé "databases".

    Après bien sur, il se peut que j'ai mal compris ton explication et dans ce cas je m'excuse d'avance et te demande, si possible, plus de détails.

  8. #8
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    sys correspond au schéma système. Et la requête marche très bien chez moi.

    La requête fournie précédemment liste les bases de données existantes, elle marche très bien chez moi.

    Si la base de données n'existe pas, sûr que l'on ne peut s'y connecter (j'avais zappé le coup du delete).

    Et tu peux sans doute te connecter à la base de données model, pour faire tes tests d'existence/création.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut
    Bizarre, bizzare.
    En effet cette requête me retourne bien une liste mais une liste des tables système (jusque la c'est ceux qu'on lui à demandé) mais il n'y figure pas le nom des bases de donnée que j'ai moi même précédemment crées lors de mes minis application avec cette syntaxe (pour rappel):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ClasseDataContext maBase = new ClasseDataContext 
                                               (@"E:\cheminDAcces\nomDeMaBase.mdf");
    // test s'il existe un base de donnée à l'adresse indiqué
    if !(maBase.DatabaseExists())
    {
    // Cération de la nouvelle table
       maBase.DatabaseCreate();
    Je me demande s'il ne me les détecte pas à cause du chemin en dure

  10. #10
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    Donc ya une info stockée ailleurs, et la pour savoir...
    Tente un drop Database si tu détectes l'erreur à la création, histoire de voir la réaction, mais si ça n'aboutit pas, il te faudra te tourner vers les forums de sql server

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 42
    Points : 33
    Points
    33
    Par défaut
    hum ... ça n'a pas l'air de marcher.
    Je crois qu eje vais faire comme t'as dis (me diriger vers le forum sql serveur)

    Dois je demander à déplacer mon post ou j'en crée un nouveau sur le forum de sql seveur ?

  12. #12
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Points : 2 331
    Points
    2 331
    Par défaut
    A mon sens laisse-le là, le côté createDatabase est intéressant. Dans ton nouveau post, référence ce topic. Après je ne suis pas modo, je ne peux pas affirmer que c'est la meilleure action, mais ça me semble convenable.

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/04/2008, 09h33
  2. Problème de création de base de données
    Par sali27 dans le forum Administration
    Réponses: 3
    Dernier message: 17/04/2008, 14h47
  3. Réponses: 1
    Dernier message: 14/02/2007, 10h48
  4. Problème d'interface de base de données avec Frontpage
    Par Auxtown-Son dans le forum Outils
    Réponses: 3
    Dernier message: 11/07/2006, 16h42
  5. création nouveau base de donné avec oracle
    Par awax dans le forum Oracle
    Réponses: 1
    Dernier message: 14/04/2006, 00h44

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