Précédent   Forum du club des développeurs et IT Pro > Dotnet > Langages > VB.NET
VB.NET Forum d'entraide sur la programmation Visual Basic .NET. Avant de poster -> FAQ VB.NET, Articles VB.NET, Sources VB.NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 14/04/2010, 19h14   #1
sihammaster
Membre actif
 
Avatar de sihammaster
 
Webmaster
Inscription : mai 2009
Messages : 252
Détails du profil
Informations professionnelles :
Activité : Webmaster
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 252
Points : 156
Points : 156
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.
sihammaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2010, 19h23   #2
meziantou
Membre Expert
 
Homme Gérald Barré
Étudiant
Inscription : avril 2010
Messages : 940
Détails du profil
Informations personnelles :
Nom : Homme Gérald Barré
Âge : 22
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Service public

Informations forums :
Inscription : avril 2010
Messages : 940
Points : 2 062
Points : 2 062
Il existe plusieurs technologies pour accéder aux BDD
- Dataset
- Linq to SQL
- Entity Framework
__________________
Pensez à la balise ainsi qu'au petit pouce vert
Mon blog : http://www.meziantou.net
WindowManager : Gérer facilement vos différentes fenêtres
meziantou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2010, 19h29   #3
Pacane
Membre actif
 
Homme Joel
Étudiant
Inscription : octobre 2007
Messages : 49
Détails du profil
Informations personnelles :
Nom : Homme Joel
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2007
Messages : 49
Points : 190
Points : 190
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!
Pacane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2010, 19h33   #4
meziantou
Membre Expert
 
Homme Gérald Barré
Étudiant
Inscription : avril 2010
Messages : 940
Détails du profil
Informations personnelles :
Nom : Homme Gérald Barré
Âge : 22
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Service public

Informations forums :
Inscription : avril 2010
Messages : 940
Points : 2 062
Points : 2 062
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.
__________________
Pensez à la balise ainsi qu'au petit pouce vert
Mon blog : http://www.meziantou.net
WindowManager : Gérer facilement vos différentes fenêtres
meziantou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2010, 19h43   #5
sihammaster
Membre actif
 
Avatar de sihammaster
 
Webmaster
Inscription : mai 2009
Messages : 252
Détails du profil
Informations professionnelles :
Activité : Webmaster
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 252
Points : 156
Points : 156
S'il vous plait pouvez vous me passé un bout de code, je dois commencé par quoi
sihammaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2010, 19h47   #6
Pacane
Membre actif
 
Homme Joel
Étudiant
Inscription : octobre 2007
Messages : 49
Détails du profil
Informations personnelles :
Nom : Homme Joel
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2007
Messages : 49
Points : 190
Points : 190
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)
Pacane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2010, 09h02   #7
hunteshiva
Membre Expert
 
Avatar de hunteshiva
 
Homme eric Maitre
Étudiant
Inscription : février 2010
Messages : 1 056
Détails du profil
Informations personnelles :
Nom : Homme eric Maitre
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 1 056
Points : 1 425
Points : 1 425
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é ...*
hunteshiva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2010, 09h11   #8
leeloo95
Membre régulier
 
Inscription : avril 2008
Messages : 151
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 151
Points : 89
Points : 89
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.
leeloo95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2010, 11h20   #9
sihammaster
Membre actif
 
Avatar de sihammaster
 
Webmaster
Inscription : mai 2009
Messages : 252
Détails du profil
Informations professionnelles :
Activité : Webmaster
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 252
Points : 156
Points : 156
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.
sihammaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2010, 13h28   #10
hunteshiva
Membre Expert
 
Avatar de hunteshiva
 
Homme eric Maitre
Étudiant
Inscription : février 2010
Messages : 1 056
Détails du profil
Informations personnelles :
Nom : Homme eric Maitre
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 1 056
Points : 1 425
Points : 1 425
pour le bouton pacourir je pense que cecie devrais t'aller
Code :
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 )
hunteshiva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2010, 18h13   #11
Hinault Romaric
Responsable Actualités

 
Avatar de Hinault Romaric
 
Homme Hinault Romaric
Consultant
Inscription : janvier 2007
Messages : 2 826
Détails du profil
Informations personnelles :
Nom : Homme Hinault Romaric
Localisation : Cameroun

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

Informations forums :
Inscription : janvier 2007
Messages : 2 826
Points : 37 292
Points : 37 292
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 :
1
2
 
"BACKUP DATABASE " & NomDeLaBD & " TO DISK = '" & CheminComplet &"' bak "
@++
__________________
Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
Mon blog Mes articles
En posant correctement votre problème, on trouve la moitié de la solution
Hinault Romaric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2010, 18h52   #12
sihammaster
Membre actif
 
Avatar de sihammaster
 
Webmaster
Inscription : mai 2009
Messages : 252
Détails du profil
Informations professionnelles :
Activité : Webmaster
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 252
Points : 156
Points : 156
Merci bcp a tous, je vais tester ca, si je trouve une solution je vais la postulé Merci encore
sihammaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2010, 12h03   #13
sihammaster
Membre actif
 
Avatar de sihammaster
 
Webmaster
Inscription : mai 2009
Messages : 252
Détails du profil
Informations professionnelles :
Activité : Webmaster
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 252
Points : 156
Points : 156
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 :
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 :
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 :
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:
Citation:
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.
sihammaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2010, 12h06   #14
leeloo95
Membre régulier
 
Inscription : avril 2008
Messages : 151
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 151
Points : 89
Points : 89
Je dirais le nom de ta BDD.
leeloo95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2010, 12h13   #15
sihammaster
Membre actif
 
Avatar de sihammaster
 
Webmaster
Inscription : mai 2009
Messages : 252
Détails du profil
Informations professionnelles :
Activité : Webmaster
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 252
Points : 156
Points : 156
Oui j'ai mis le nom de ma base de données(Master), et j'ai recu le message d'erreur suivant:
Citation:
Cannot detach the database 'master' because it is currently in use
sihammaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2010, 12h19   #16
leeloo95
Membre régulier
 
Inscription : avril 2008
Messages : 151
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 151
Points : 89
Points : 89
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.
leeloo95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2010, 12h24   #17
sihammaster
Membre actif
 
Avatar de sihammaster
 
Webmaster
Inscription : mai 2009
Messages : 252
Détails du profil
Informations professionnelles :
Activité : Webmaster
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 252
Points : 156
Points : 156
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?
sihammaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2010, 12h30   #18
leeloo95
Membre régulier
 
Inscription : avril 2008
Messages : 151
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 151
Points : 89
Points : 89
D'attendre que quelqu'un qui s'y connaisse puisse t'orienter

la solution de lilroma ne fonctionne pas?
leeloo95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2010, 12h34   #19
sihammaster
Membre actif
 
Avatar de sihammaster
 
Webmaster
Inscription : mai 2009
Messages : 252
Détails du profil
Informations professionnelles :
Activité : Webmaster
Secteur : Finance

Informations forums :
Inscription : mai 2009
Messages : 252
Points : 156
Points : 156
Non, je l'a testé mais ca pas marché,.
sihammaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2010, 14h12   #20
Hinault Romaric
Responsable Actualités

 
Avatar de Hinault Romaric
 
Homme Hinault Romaric
Consultant
Inscription : janvier 2007
Messages : 2 826
Détails du profil
Informations personnelles :
Nom : Homme Hinault Romaric
Localisation : Cameroun

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

Informations forums :
Inscription : janvier 2007
Messages : 2 826
Points : 37 292
Points : 37 292
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 :
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.

@++
__________________
Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
Mon blog Mes articles
En posant correctement votre problème, on trouve la moitié de la solution
Hinault Romaric est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h11.


 
 
 
 
Partenaires

Hébergement Web