- [C#] Di chuyển và thay đổi kích thước Control Winform khi ứng dụng đang chạy
- [VB.NET] Chia sẻ source tạo sắp xếp đội hình bóng đá Line-ups đội bóng
- [C#] Hướng dẫn chỉnh sửa Text của label trực tiếp trên winform
- [C#] Hướng dẫn custom TextBox giống Ultraviewer trên Winform
- [C#] Show Modal Winform like Bootstrap
- [DATABASE] Thứ tự thực hiện mệnh đề truy vấn SELECT trong Sqlserver
- [C#] Hướng dẫn viết addin Excel Lấy hình ảnh từ URL internet vào Excel
- [DATABASE] TSQL view max length all column data trên table Sqlserver
- [DEVEXPRESS] Hướng dẫn sử dụng MailMerge kèm Hình ảnh trên Winform
- [DATABASE] Hướng dẫn truy vấn xem kích thước lưu trữ của từng bảng ghi Table trên sqlserver
- [C#] Hướng dẫn Fake Date Time sử dụng thư viện Harmony
- [DATABASE] Phân biệt câu lệnh DDL và DML trong sqlserver
- [C#] Hướng dẫn convert file mã HTML sang file Pdf trên winform
- [DEVEXPRESS] Tạo các loại mã vạch Barcode trực tiếp trên Devexpress Barcode API
- [DEVEXPRESS] Hướng dẫn custom Simple button thành Progressbar
- [DATABASE] Tách số và chữ từ chuỗi - hàm tối ưu hóa tách số và chữ trong Sqlserver
- [C#] Tìm kiếm gần đúng Full Text Search sử dụng thư viện Lucene.NET
- [C#] Chia sẻ tài liệu, sdk và source code máy chấm công dòng máy ZKTeco
- [C#] Memory Cache là gì, và sử dụng trong ứng dụng Winform
- [DATABASE] Khóa chính Primary Key trong Sqlserver
Ứ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 !