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 :

Comment sauvegarder une base de données en vb.net


Sujet :

VB.NET

  1. #1
    Membre habitué Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Points : 183
    Points
    183
    Par défaut Comment sauvegarder une base de données en vb.net
    Comment sauvegarder une base de données depuis VB ? j'ai trouvé du trucs sur SQL, des requetes plutot, mais ce que je cherche c'est de le faire en vb.net. Merci D'avance.

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Il existe plusieurs technologies pour accéder aux BDD
    - Dataset
    - Linq to SQL
    - Entity Framework

  3. #3
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Points : 211
    Points
    211
    Par défaut
    Si tu utilises le Dataset, il existe un truc super facile... En fait tu peux exporter le tout sous format XML, avec ou sans schéma xsd... C'est super pour ça

    Bonne chance!

  4. #4
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    L'intérêt du Dataset est surtout qu'il permet un mode déconnecté.
    L'intérêt d'Entity Framework est de pouvoir gérer sa BDD avec un model object et non relationnel. De plus EF évite d'écrire les requêtes SQL à la main.
    Depuis l'arrivé d'EF4, je ne vois plus vraiment d'intérêt pour Linq to SQL.

  5. #5
    Membre habitué Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Points : 183
    Points
    183
    Par défaut
    S'il vous plait pouvez vous me passé un bout de code, je dois commencé par quoi

  6. #6
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Points : 211
    Points
    211
    Par défaut
    Citation Envoyé par meziantou Voir le message
    L'intérêt du Dataset est surtout qu'il permet un mode déconnecté.
    L'intérêt d'Entity Framework est de pouvoir gérer sa BDD avec un model object et non relationnel. De plus EF évite d'écrire les requêtes SQL à la main.
    Depuis l'arrivé d'EF4, je ne vois plus vraiment d'intérêt pour Linq to SQL.
    Oui bon, le dataset est beaucoup plus que ce que j'ai dit, mais pour son besoin, cela reste une bonne solution, selon moi. (Le Dataset.WriteXML si je me souviens bien)

  7. #7
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    Tu veut juste exporter des données sans les réutiliser sous vb par la suite ?

    si c'est le cas je veut bien t'aider
    *charger puis modifier les données d'une base de données est un peut plus complqué ...*

  8. #8
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Points : 123
    Points
    123
    Par défaut
    Je suis également interessé par la méthode via vb.net.

    Car ce que je fait, mais c'est une solution de substitution.
    J'ai ma BBD vide de donnée + une BBD active.
    Lorsque je veux la sauvegarder (je fait une BBD par Année), à la fin de l'année je permet à un administrateur de pointer sur une BDD vierge et l'autre est sauvegardé à coté, ainsi s'il a besoin de travailler sur des années antérieur (cas très rare, mais utile pour la partie statistique) il repointe sur une BDD2008 par exemple.

  9. #9
    Membre habitué Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Points : 183
    Points
    183
    Par défaut
    Bonjour,
    Ce que je veux faire moi, c'est de donner la possiblité à un utilisateur de faire une sauvegarde de sa base de données; au lieu d'aller arreter le server sql dans sql server, et copier la base a partir de son dossier; je veux faire ces etapes en vb.net; creer un form avec un bouton parcourir et un bouton sauvegarder, je choisi une base dans un combobox et je clique sur le bouton parcourir pour préciser le chemin de sauvegarde et puis sauvgardant la BD en cliquant sur bouton sauvegarde.

  10. #10
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    pour le bouton pacourir je pense que cecie devrais t'aller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim BoiteDeSauvegarde As New SaveFileDialog
     
    With BoiteDeSauvegarde
            .InitialDirectory = Application.StartupPath & "\" 'répertoire sur lequel s'ouvrira la boite
            .Title = "Choisir un fichier" 'titre de la barre
            .Filter = "Base de données(*.mdb)|*.mdb" 'filtre, seules les fichiers .mdb apparaîtront
            .ShowDialog() ' on ouvre la boite de dialogue pour finir
    End With
    Aprés, pour le reste il me faudrais un bout de code de ta part,
    je ne suis pas spécialiste des Base SQL en +...
    (tu peut voir que mon code est fait pour des bases Access, tu a juste a changer le filtre pour toi et p-e le chemin )

  11. #11
    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
    Tu doit simple faire un backup de ta base de données.

    Voila la requête SQL que tu doit metre dans ton CommandText

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "BACKUP DATABASE " & NomDeLaBD & " TO DISK = '" & CheminComplet &"' bak "
    @++
    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

  12. #12
    Membre habitué Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Points : 183
    Points
    183
    Par défaut
    Merci bcp a tous, je vais tester ca, si je trouve une solution je vais la postulé Merci encore

  13. #13
    Membre habitué Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Points : 183
    Points
    183
    Par défaut
    Bonjour,
    Voila j'ai trouvé quelque chose mais ca ne fanctionne pas.

    Voila les Codes:
    --------------------------SQL: Procedures stockées---------------------------
    --Ce Code sert a detacher la base de données: (Master)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE PROCEDURE usp_DetachDatabase
          @DatabaseName varchar(50)
    AS
     
    EXEC master.dbo.sp_detach_db @dbname = @DatabaseName,@keepfulltextindexfile = N'true'
    ----ce code sert a attacher la base de données(Master)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE PROCEDURE [dbo].[usp_AttachDatabase]
          @DatabaseLocation varchar(100),
          @DatabaseName varchar(100)
    AS
    DECLARE @myMDF as varchar(100)
    DECLARE @myLDF as varchar(100)
    SET @myMDF  = @DatabaseLocation + '\Data\' + @DatabaseName + '.mdf'
    SET @myLDF = @DatabaseLocation + '\Data\' + @DatabaseName + '_log.ldf'
     
    EXEC sp_attach_db @DatabaseName,@myMDF, @myLDF
    --------------------------SQL:Code VB.Net------------------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Imports System.Data.SqlClient
    Imports System.IO
    Public Class Form1
        Private Sub btnBackUpDatabase_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBackUpDatabase.Click
            Dim cnString As String = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=TURNER-1B9A9553\SQLEXPRESS"
            Dim dbLocation As String = "F:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\"
            Dim dbName As String = "StevesBackUpDB"
     
            Using cn As New SqlConnection(cnString)
                cn.Open()
                Using cmdDetach As New SqlCommand
                    cmdDetach.Connection = cn
                    cmdDetach.CommandType = CommandType.StoredProcedure
                    cmdDetach.CommandText = "usp_DetachDatabase"
                    cmdDetach.Parameters.AddWithValue("@DatabaseName", dbName)
                    cmdDetach.ExecuteNonQuery()
                    RelocateCopiedMDF(dbLocation, dbName)
                    Using cmdAttach As New SqlCommand
                        cmdAttach.Connection = cn
                        cmdAttach.CommandType = CommandType.StoredProcedure
                        cmdAttach.CommandText = "usp_AttachDatabase"
                        cmdAttach.Parameters.AddWithValue("@DatabaseName", dbName )
                        cmdAttach.Parameters.AddWithValue("@DatabaseLocation", dbLocation)
                        cmdAttach.ExecuteNonQuery()
                    End Using
                End Using
            End Using
            MessageBox.Show("Database backup complete.")
        End Sub
        Private Sub RelocateCopiedMDF(ByVal dbLocation As String, ByVal dbName As String)
            Dim myMDF As String = dbLocation & "\Data\" & dbName & ".mdf"
            Dim myLDF As String = dbLocation & "\Data\" & dbName & "_Log.ldf"
     
            Dim copyMDF As New FileInfo(myMDF)
            Dim copyLDF As New FileInfo(myLDF)
     
            copyMDF.CopyTo("F:\Documents and Settings\Adam\Desktop\myDBbackup\" & dbName & "bak.mdf")
            copyLDF.CopyTo("F:\Documents and Settings\Adam\Desktop\myDBbackup\" & dbName & ".ldf")
     
        End Sub
    End Class
    mais le code me genere l'erreur suivant:
    The database 'StevesBackUpDB' does not exist. Use sp_helpdb to show available databases.
    svp Qu'est ce que je dois mettre au lieu de 'StevesBackUpDB'? c'est quoi l'erreur exact? merci d'avance.

  14. #14
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Points : 123
    Points
    123
    Par défaut
    Je dirais le nom de ta BDD.

  15. #15
    Membre habitué Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Points : 183
    Points
    183
    Par défaut
    Oui j'ai mis le nom de ma base de données(Master), et j'ai recu le message d'erreur suivant:
    Cannot detach the database 'master' because it is currently in use

  16. #16
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Points : 123
    Points
    123
    Par défaut
    J'y connais pas grand chose, mais en gros le message d'erreur voudrait dire que ta BDD est en cours d'utilisation donc ouverte.

  17. #17
    Membre habitué Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Points : 183
    Points
    183
    Par défaut
    Oui mais j'ai fermé toutes les tables de la BDD, et dans c'est le code qui va detaché et attaché la base de données, Qu'est ce que tu propose?

  18. #18
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 151
    Points : 123
    Points
    123
    Par défaut
    D'attendre que quelqu'un qui s'y connaisse puisse t'orienter

    la solution de lilroma ne fonctionne pas?

  19. #19
    Membre habitué Avatar de sihammaster
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 256
    Points : 183
    Points
    183
    Par défaut
    Non, je l'a testé mais ca pas marché,.

  20. #20
    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,

    vouloir detacher/attacher est une mauvaise solution car losque tu detache ta BD célui ci n'est plus accessible. Et pour pouvoir le faire toute les connexions sur celle ci doivent etre coupé. La fermeture de toute les tables ne veut pas dire que la BD n'est plus en cour d'utilisation.

    Citation Envoyé par sihammaster Voir le message
    Non, je l'a testé mais ca pas marché,.
    Fait moi voir le code que tu a utiliser pour générer le fichier .bak de ta BD

    essaye d'abord avec un exemple simple comme celui-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BACKUPDATABASE StevesBackUpDB
    TODISK='c:\SteveBackUp.bak'
    WITHCOMPRESSION
    Faudra tout d'abord créer la BD SteveBackupDB.

    L'option 'WITHCOMPRESSION' est optionnel.

    @++
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/11/2013, 09h25
  2. Comment sauvegarder une base de donnée ?
    Par Ryu2000 dans le forum Bases de données
    Réponses: 8
    Dernier message: 30/04/2010, 16h44
  3. comment vider une base de donnée
    Par caps_corp dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 21/04/2004, 16h54
  4. Comment acceder à une base de donnée F1.db_ ?
    Par diado dans le forum Autres SGBD
    Réponses: 8
    Dernier message: 26/12/2003, 08h09

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