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.
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.
Il existe plusieurs technologies pour accéder aux BDD
- Dataset
- Linq to SQL
- Entity Framework
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!
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.
S'il vous plait pouvez vous me passé un bout de code, je dois commencé par quoi
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é ...*
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.
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.
pour le bouton pacourir je pense que cecie devrais t'aller
Aprés, pour le reste il me faudrais un bout de code de ta part,
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
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 )
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
Merci bcp a tous, je vais tester ca, si je trouve une solution je vais la postulé Merci encore
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)
----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 CREATE PROCEDURE usp_DetachDatabase @DatabaseName varchar(50) AS EXEC master.dbo.sp_detach_db @dbname = @DatabaseName,@keepfulltextindexfile = N'true'
--------------------------SQL:Code VB.Net------------------------
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
mais le code me genere l'erreur suivant:
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
svp Qu'est ce que je dois mettre au lieu de 'StevesBackUpDB'? c'est quoi l'erreur exact? merci d'avance.The database 'StevesBackUpDB' does not exist. Use sp_helpdb to show available databases.
Je dirais le nom de ta BDD.
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
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.
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?
D'attendre que quelqu'un qui s'y connaisse puisse t'orienter
la solution de lilroma ne fonctionne pas?
Non, je l'a testé mais ca pas marché,.
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.
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
Faudra tout d'abord créer la BD SteveBackupDB.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4BACKUPDATABASE StevesBackUpDB TODISK='c:\SteveBackUp.bak' WITHCOMPRESSION
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager