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 :

backup base sql 2008 express


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut backup base sql 2008 express
    Bonjour à tous
    j'aimerais savoir comment faire pour sauvegarder une base sql 2008 express avec Visual 2010
    ce que j'aimerais c'est que dans mon appli je mette le nom de ma base à sauvegarder dans un textbox et quand l'appli se lance pour la sauvegarde il va voir le textbox pour savoir quoi sauvegarder
    et aussi je pense qu'il faudrait mettre l'utilisateur et le mot de passe pour se connecter à la base dans 2 textbox
    d'habitude j'utilise le sql agent mais sur de l'epxress on peut pas ou sinon des batch mais là je voudrais faire quelques choses de mieux

    je sais pas si j'ai réussi à me faire comprendre et votre aide serait bien utile

    encore merci

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    exécutez la requête suivante de la même manière qu'on exécute une requête de type insert ou autre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    backup database nom_base to disk = 'c:\dossier\ma sauvegarde.bak'
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    bonjour pol63 et merci

    je connais cette requête c'est la même que j'utilise dans les batch
    mais à moins que j'ai pas compris la réponse mais comment je mets cette dans un textbox
    car dans ma textbox je voudrais mettre le nom de la base que je veux sauvegarder en mémoire par exemple pour des sauvegardes périodique et ainsi changer car j'ai pas tout le temps le même nom de base

    encore merci

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    concaténation !?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    concaténation !?
    Désolé là je vais avoir besoin de plus d'infos
    je suis désolé et merci de m'aider

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    version peu sécurisée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlcmd.commandtext = "backup database " & TextBoxBaseName.Text & " to disk = '" & TextBoxFichierBackup.Text & "'"
    à tenter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sqlcmd.commandtext = "backup database @basename to disk = @path"
    sqlcmd.parameters.Add("@basename", TextBoxBaseName.Text)
    sqlcmd.parameters.Add("@path", TextBoxFichierBackup.Text)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    merci à toi

    je vais essayer ça et te tenir au courant

    encore merci

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    Bon voilà

    j'ai utilisé la première méthode
    mais rien se passe (pas de sauvegarde)
    j'ai importé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Imports System.Data.SqlClient
    Imports System.Data.SqlClient.SqlCommand
    j'ai déclaré sqlcmd

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim SQLCmd As New SqlCommand()
    je sais pas si cela suffit ou si c'est comme ça
    désolé

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    si tu ne sais pas exécuter une requete il faut évidemment commencer par apprendre à le faire ...

    il faut aussi un try catch autour du code
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    bonsoir
    excuse moi
    mais j'ai passé toute l'après midi a regarder try catch
    mais malgré toute ma bonne volonté
    rien ne se passe
    je suis désolé de t'embêter

    merci

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    code complet ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    oui
    j'arrive bien à me connecter à mon serveur sql
    et quand je met le nom de la base dans le textbox et j'essaie de sauvegarder il n'y a rien

    merci encore et désolé

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    non mais je veux le code complet
    désolé mais je ne suis pas malheureusement pas devin donc je suis dans l'obligation de voir du code pour faire un diagnostique ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    désolé j'avais pas compris que tu voulais le code

    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
    42
    Imports Microsoft.SqlServer
    Imports System.Data.SqlClient
    Imports System.Data.SqlClient.SqlCommand
     
    Public Class Form1
     
        Dim connexion As New SqlConnection
        Dim SQLCmd As New SqlCommand()
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            Try
                SQLCmd.CommandText = "backup database " & TextBoxBaseName.Text & " to disk = d:\backupsql\backup" & TextBoxFichierBackup.Text & "'"
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
     
        End Sub
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            Try
                'Création de la chaîne de connexion
                Dim connectString As String = "Server=.\sqlexpress;Database=base;User ID=user;Password=password"
                'Création de la connexion
                Dim connection As SqlConnection = New SqlConnection(connectString)
                connection.Open()
     
                If connection.State = ConnectionState.Open Then
                    MsgBox("Connexion réussie", MsgBoxStyle.Exclamation, "status")
                End If
                connection.Close()
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Erreur")
     
            End Try
     
     
        End Sub
     
     
    End Class
    Soit pas trop sévère avec moi

    encore merci de ton aide

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    je ne suis pas sévère envers toi mais ce que tu fais

    il faut apprendre à coder avec de coder ...

    à l'ouverture du form ton code ouvre une connexion à sql server et la referme sans rien faire
    sur le bouton.click tu remplies juste une propriété string, sans exécuter la requete, donc normal que ca ne fasse rien


    sqlconnection sert à ouvrir une connexion
    sqlcommand sert à l'exécution de requete :
    - il faut remplir CommandText (la requete) (et éventuellement Parameters s'il y a des paramètres à transmettre)
    - il faut lui donner l'objet connexion à utiliser
    - il faut faire executenonquery ou executereader (executereader est utile pour lire le retour d'un select) et il faut que la connexion soit ouverte pour que ca marche

    le tout doit etre dans un try catch car la connexion peut ne pas s'ouvrir, la requete peut etre mal écrite et planter, la requete peut planter si sql server n'arrive pas à l'exécuter
    le message d'erreur t'aidera alors à corriger le code ou la requete
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    Merci à toi

    je vais voir ça et essayer d'arranger tout ça
    avec mes batch ça marche très bien mais c'est vrai que j'aimerais quelques choses de mieux alors je continu

    merci encore de ton aide

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    Donc voilà

    j'ai plus rien mis dans le load de ma form mais juste sur le l'évènement du bouton

    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
     Dim Connection As New SqlConnection()
            Connection.ConnectionString = "Server=.\sqlexpress;Database=base;User ID=sa;Password=password"
            Connection.Open()
            Try
     
                Dim SQLCmd As New SqlCommand()
                SQLCmd.Connection = Connection
                SQLCmd.CommandText = "backup database " & TextBoxBaseName.Text & " to disk = d:\backupsql\backup" & TextBoxFichierBackup.Text & " '"
     
     
                SQLCmd.ExecuteNonQuery()
                MessageBox.Show("sauvegarde réussi", "OK")
     
            Catch exp As SqlException
                MessageBox.Show(exp.Message)
            Finally
     
                Connection.Close()
            End Try
    je sais pas si je m'approche ou si je m'éloigne mais là quand je test
    il me dit :
    "Syntaxe incorrecte vers'd:'.
    Ouvrez les guillemets après la chaîne de caractères".

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    J'ai mis la deuxième solution pour faire ma sauvegarde

    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
     
            Dim Connection As New SqlConnection()
            Connection.ConnectionString = "Server=.\sqlexpress;Database=base;User ID=sa;Password=password"
            Connection.Open()
            Try
                Dim SQLCmd As New SqlCommand()
                SQLCmd.Connection = Connection
     
                SQLCmd.CommandText = "backup database @basename to disk = @path "
     
                SQLCmd.Parameters.AddWithValue("@basename", TextBoxBaseName.Text)
                SQLCmd.Parameters.AddWithValue("@path", TextBoxFichierBackup.Text)
     
                SQLCmd.ExecuteNonQuery()
                MessageBox.Show("sauvegarde réussi", "OK")
     
            Catch exp As SqlException
                MessageBox.Show(exp.Message)
            Finally
     
                Connection.Close()
            End Try
     
        End Sub
    là impeccable il me fait bien la sauvegarde à l'endroit ou je lui dis dans le textbox
    par contre quand je relance une deuxième sauvegarde il me génère pas un autre fichier mais il cumule sur le même fichier
    alors je sais que dans un batch pour éviter ça on met noinit
    moi je mets ça dans mes batch

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlcmd -S .\SQLexpress -U sa -P password -Q "BACKUP Database [base] TO  DISK = N'%FICHIER%' WITH NOFORMAT, NOINIT, NAME = N'base-Transaction Log  Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10" -o %LOG_FILE%
    mais pour vb net je vois pas trop

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    pour la 1ère solution il te manque des guillements, et il te le dit, et je te l'avais mis dans l'exemple ...

    to disk = d:\backupsql\backup" & ...
    =>
    to disk = 'd:\backupsql\backup" & ... & "'"

    pour la 2ème solution tu tapes backup database sql server dans google, tu vas sur la page d'msdn qui devrait etre en 1er dans les résultats et il t'expliquera la syntaxe de la commande backup database, et où se met le noinit
    sinon il suffit de supprimer le fichier s'il existe
    if system.io.file.exists(textbox.text) then system.io.file.delete(textbox.text)
    puis le backup
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 112
    Par défaut
    Merci à toi pour cette aide bien précieuse
    je vais chercher le NOINIT car je voudrait garder un nombre de sauvegarde minimum je ne veux pas supprimer tout à chaque fois

    par contre excuse moi encore de profiter encore une fois de ta gentillesse
    mais est ce que c'est possible de mettre dans des textbox
    la connexion au serveur sql au lieu de le mettre en dur
    par exemple
    un textbox pour le serveur
    un textbox pour le mot de passe et un autre pour l'utilisateur
    car j'ai pas forcément le même nom de serveur sql partout

    encore merci des tes lumières

Discussions similaires

  1. Backup base SQL server 2005
    Par Axiome dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 28/01/2013, 13h32
  2. Réponses: 2
    Dernier message: 09/04/2010, 13h31
  3. SSIS / SQL 2008 Express
    Par ecureuilmasque dans le forum SSIS
    Réponses: 1
    Dernier message: 02/06/2009, 21h53
  4. impossible de trouver sql 2008 express
    Par ninjajaune dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/01/2009, 02h34
  5. SQL 2008 Express Edition
    Par CARMIN dans le forum Administration
    Réponses: 1
    Dernier message: 26/09/2008, 20h11

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