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
|
Private Sub btnexecute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnexecute.Click
Dim dDate As String = Date.Today.ToString("dddd")
Dim ext As String = ".bak" 'extension du fichier
If TextBoxFichierBackup.Text = "" Then
MessageBox.Show("Vous devez Renseigner le repertoire de stockage de la sauvegarde !", "Erreur de Chemin", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End If
Dim cnxStringBuilder as New SqlConnectionStringBuilder()
builder.DataSource = txtsqlname.Text
builder.InitialCatalog = txtbaseconn.Text
builder.UserID = txtidsql.Text
builder.Password = txtpasssql.Text
builder.ConnectTimeout = 3600 ' Pas de TimeOut de 0, comme indiqué dans la doc, j'ai mis 1h, ca commence déjà à faire beaucoup.
'sauvegarde de la base dans un repertoire personnaliser
Try
' On met la création et ouverture de session dans le Try/Catch, ça peut échouer...
' Il y a un constructeur pour la chaine de connexion, autant l'utiliser
Using cnx As New SqlConnection(cnxStringBuilder.ConnectionString) ' Disposable => Using
cnx.Open()
Dim query As String = "BACKUP DATABASE " & connbase & " TO DISK = '" & TextBoxFichierBackup.Text & TextBoxbaseBackup.Text & "_" & dDate & ext & "'" & "with init"
' La encore, un constructeur qui fait tout, autant l'utiliser
Using cmd As New SqlCommand(query, cnx) ' Disposable => Using
cmd.ExecuteNonQuery()
End Using
MessageBox.Show("sauvegarde réussi", "OK")
End Using
Catch exp As SqlException
MessageBox.Show(exp.Message)
End Try
End Sub |
Partager