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 :

[VB.net - SQL] Probleme pour effacer/creer une base de donnee


Sujet :

VB.NET

  1. #1
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Points : 107
    Points
    107
    Par défaut [VB.net - SQL] Probleme pour effacer/creer une base de donnee
    Salut,

    Suis un peu perdu alors voila :

    Dans mon code vb, pour creer une base de donnee j utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    connectionString = "Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True"
    conn = New SqlConnection(connectionString)
    sql = "CREATE DATABASE " & basename & " ON PRIMARY" + "(Name=" & basename & ", filename = 'D:\DTI SAM Database\" & basename & "_data.mdf', size=3," + "maxsize=5, filegrowth=10%)log on" + "(name=" & basename & "_log, filename='D:\DTI SAM Database\" & basename & "_log.ldf',size=3," + "maxsize=20,filegrowth=1)"
    conn.Open()
    cmd = New SqlCommand(sql, conn)
    cmd.ExecuteNonQuery()
    avec basename le nom de ma base.

    Jusque la tout va bien. Losque j execute je me retrouve bien avec une base de donnees dans le dossier specifié.

    Ne sachant pas encore effacer ma base de donnee depuis VB, j utilise SQL server management pour le faire. Pour ca, j attache ma base basename et je lance la requete "DROP DATABASE " + le nom de ma base.
    Le resultat est que mes deux fichiers sont bien effacé (ldf et mdf). Donc tout va bien.

    Ben non ... Si je relance mon appli VB.net pour recreer une base portant le meme nom, j ai un message d erreur me disant que la base de donnee existe deja.

    Je capte pas pourquoi

    Merci

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    tout ce que tu executes dans management studio tu peux faire la meme chose avec vb
    essaye de droper à partir de vb
    tu peux meme faire une requete IF NOT EXISTS() CREATE ...

  3. #3
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Points : 107
    Points
    107
    Par défaut
    Yo,

    Merci de m aider car je m arrache un peu les cheveux ...

    En fait, j ai essayé tout d abord de le faire par vb avec ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    connectionString = "Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True"
            conn = New SqlConnection(connectionString)
            conn.Open()
            sql = "DROP DATABASE " & basename
            cmd = New SqlCommand(sql, conn)
            cmd.ExecuteNonQuery()
            conn.Close()
            Console.WriteLine(" ----DROP DONE ---- ")
    Mais j ai en retour un message d erreur me disant qu elle n existe pas ou que je n ai pas le droit de la virer.

    J ai aussi essayé en essayant de connecter le connectionString a la base de donnée basename :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=D:\DTI SAM Database\" & basename & "_data.mdf;Integrated Security=True;User Instance=True"
    et j ai alors le meme message d erreur.


  4. #4
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Je ne sais pas si cela t'aidera mais bon :
    Aide sur les bases de données

  5. #5
    Membre habitué
    Inscrit en
    Avril 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 124
    Points : 150
    Points
    150
    Par défaut
    Tu ne peux pas faire un DROP sur une base de données en utilisation.
    Tu ne peux pas faire un DROP sur une base de données non monté..
    Donc il te faut faire un "Attach", changer la base de données (conn.database="Master" à essayer), et ensuite tu peux faire un DROP.
    Au pire, fait un DROP, test si tes fichiers sont toujours existant et au cas ou detruit les..
    Tu peux aussi regarder dans master.dbo.sysdatabases.
    Bon courage.

Discussions similaires

  1. [10g] Creer une base de donnees pour un thesaurus (document)
    Par ingMaster dans le forum Oracle
    Réponses: 0
    Dernier message: 15/09/2013, 18h06
  2. creer une base de donnee avec T-SQL
    Par zaghi dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 30/12/2010, 15h27
  3. probleme pour creer une base de donnee
    Par caroen dans le forum MySQL
    Réponses: 5
    Dernier message: 06/11/2008, 14h50
  4. creer une base de donnees sous sql server express 2005
    Par brajae85 dans le forum Développement
    Réponses: 2
    Dernier message: 08/09/2008, 13h54
  5. [VB6]Créer une Base de données
    Par ThierryAIM dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/04/2003, 18h24

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