- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
Ứng dụng backup database và nén vào một thư mục
Xin giới thiệu với các bạn công cụ backup database, nén dữ liệu và upload lên FTP Server hoặc sao chép trong mạng LAN bằng VB.NET
Được phát triển dựa theo bài viết của anh Thảo Meo Hướng dẫn Backup và nén Database Sqlserver và sau đó upload file lên FTP Server Bài viết này mình sẽ lấy ra danh sách tên các database trong server hiện có, sau đó chọn database và thực hiện backup. Đồng thời mình cũng chọn thư mục chứa để lưu bản backup vừa thực hiện.
Cách thực hiện:
Thiết kế một form bao gồm text box dùng để nhập tên server sql được cài đặt, một combobox chứa các database có trong server và nút lệnh thực thi truy vấn backup.
Nhấn F7 và code như sau:
Imports System.Data.SqlClient
Imports System.IO
Imports DevExpress.XtraSplashScreen
Public Class Form1
Private Sub btn_duyet_Click(sender As Object, e As EventArgs) Handles btn_duyet.Click
Dim folder_select As FolderBrowserDialog = New FolderBrowserDialog()
If folder_select.ShowDialog = DialogResult.OK Then
txt_folder_store.Text = folder_select.SelectedPath
dgv_show.DataSource = Directory.GetFiles(txt_folder_store.Text, "*.*")
End If
End Sub
Public Sub _Update(ByVal strLenh As String)
open_connect()
Dim d As String = "set dateformat dmy"
Dim cmd1 As New SqlCommand(d, strconnect)
cmd1.ExecuteNonQuery()
Dim cmd As New SqlCommand(strLenh, strconnect)
cmd.CommandTimeout = 0
cmd.ExecuteNonQuery()
close_connect()
End Sub
Public strconnect As New SqlConnection
Public Sub open_connect()
Try
strconnect.ConnectionString = "Server=" & Trim(txt_SQLserverName.Text) & ";Database=hob2016;Trusted_Connection=True;"
strconnect.Open()
Catch ex As Exception
End Try
End Sub
Public Sub close_connect()
strconnect.Close()
End Sub
Private Sub btn_backup_Click(sender As Object, e As EventArgs) Handles btn_backup.Click
If txt_folder_store.Text.Length > 0 And cbo_database.Text.Length > 0 Then
SplashScreenManager.ShowForm(GetType(SplashScreen1))
_Update("DECLARE @fname varchar(255) DECLARE @fname_backup varchar(255) DECLARE @fname_archive varchar(255) DECLARE @archive_path varchar(255) DECLARE @dbname varchar(255) DECLARE @archive_cmd varchar(255) DECLARE @put_cmd varchar(255) DECLARE @delFname_backup varchar(255) DECLARE @dir_taget varchar(255) DECLARE @copy VARCHAR(255) SET @dbname = '" & cbo_database.Text & "' SET @fname = @dbname + '_' + LTRIM(STR(DAY(GETDATE()))) + '.' + LTRIM(STR(MONTH(GETDATE()))) + '.' + LTRIM(STR(YEAR(GETDATE()))) + '_' + LTRIM(STR(DATEPART(HOUR,(GETDATE())))) + '.' + LTRIM(STR(DATEPART(MINUTE,(GETDATE())))) + '.' + LTRIM(STR(DATEPART(SECOND,(GETDATE())))) SET @archive_path = 'D:Backup' SET @fname_backup = @archive_path + @fname + '.BAK' SET @delFname_backup = 'del ' + @fname_backup SET @fname_archive = @archive_path + @fname + '.RAR' SET @archive_cmd = '""C:Program Files (x86)WinRARWinRAR.EXE"" a ' + @fname_archive + ' ' + @fname_backup SET @put_cmd = 'echo put ' + @fname_archive + '>> D:Backupftpcmds.txt' SET @dir_taget ='" & txt_folder_store.Text & "' + @fname + '.RAR' SET @copy='xcopy ' + @fname_archive + ' ' + @dir_taget +'*' PRINT @fname_backup PRINT @fname_archive BACKUP DATABASE @dbname TO DISK = @fname_backup WITH INIT EXEC xp_cmdshell @archive_cmd EXEC xp_cmdshell @delFname_backup exec xp_cmdshell @copy ") SplashScreenManager.CloseForm() dgv_show.DataSource = Directory.GetFiles(txt_folder_store.Text, "*.*")
End If
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'load_servername()
txt_SQLserverName.Focus()
txt_SQLserverName.SelectAll()
End Sub
Private Sub btn_servername_Click(sender As Object, e As EventArgs) Handles btn_servername.Click
Try
open_connect()
Dim ds As New DataSet
Dim cmd As New SqlDataAdapter("select name from sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb')", strconnect) ' lấy tất cả tên các database co torng server
cmd.Fill(ds)
close_connect()
cbo_database.Properties.DataSource = ds.Tables(0)
cbo_database.Properties.DisplayMember = "name"
cbo_database.Properties.ValueMember = "name"
strconnect.Close()
Catch ex As Exception
MessageBox.Show("Lỗi kết nối !")
End Try
End Sub
End Class
Đoạn code khá là thông dụng rồi, nên xin phép không làm mất thời gian của mọi người.
Source ngay đây download xuống là có thể xài nhá.
Nếu có gì thắc mắc vui lòng để lại coment !
Chúc vui !