02/10/2018, 00:04

Backup và Restore Database Microsoft SQL Server

Công việc backup và restore database là công việc quan trọng và cần thiết khi lập trình ứng dụng tương tác với cơ sở dữ liệu, hôm nay mình xin hướng dẫn các bạn bài viết làm thế nào để backup và restore database với vb.net một cách nhanh chóng. Bước ...

Công việc backup và restore database là công việc quan trọng và cần thiết khi lập trình ứng dụng tương tác với cơ sở dữ liệu, hôm nay mình xin hướng dẫn các bạn bài viết làm thế nào để backup và restore database với vb.net một cách nhanh chóng.

Bước 1: Ta import thư viện microsoft sqlserver vào

Imports System.Data.SqlClient

- Tiếp đến ta khai báo các biến để kết nối VB với MSSQL

Dim con As SqlConnection
Dim cmd As SqlCommand
Dim dread As SqlDataReader

Bước 2: Ta tạo 1 function server để lấy tên server MSSQL vào combox tên server (cmbserver)

 Sub server(ByVal str As String)
        con = New SqlConnection("Data Source=" & str & ";Database=Master;integrated security=SSPI;")
        con.Open()
        cmd = New SqlCommand("select *  from sysservers  where srvproduct='SQL Server'", con)
        dread = cmd.ExecuteReader
        While dread.Read
            cmbserver.Items.Add(dread(2))
        End While
        dread.Close()
    End Sub

Bước 3: Ta tiếp tạo 1 function connection() để liệt kê tất cả database đang có trong server để chúng ta thao tác backup hay restore.

Sub connection()
        con = New SqlConnection("Data Source=" & Trim(cmbserver.Text) & ";Database=Master;integrated security=SSPI;")
        con.Open()
        cmbdatabase.Items.Clear()
        cmd = New SqlCommand("select * from sysdatabases", con)
        dread = cmd.ExecuteReader
        While dread.Read
            cmbdatabase.Items.Add(dread(0))
        End While
        dread.Close()
    End Sub

- Tiếp đến ta tạo 1 event  khi cmbserver_SelectedIndexChanged()  sẽ get lại kết nối khi chọn database

Private Sub cmbserver_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbserver.SelectedIndexChanged
        connection()
    End Sub

- Tiếp ta  tạo một  function query() để thực hiện truy vấn câu lệnh Sql backup hay restore

Sub query(ByVal que As String)
        On Error Resume Next
        cmd = New SqlCommand(que, con)
        cmd.ExecuteNonQuery()
    End Sub

Bước 4: Ta xử lý timer() dùng để tạo process bar và thông báo khi thực hiện câu lệnh backup hay restore

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If ProgressBar1.Value = 100 Then
            Timer1.Enabled = False
            ProgressBar1.Visible = False
            MsgBox("Thành công!")
        Else
            ProgressBar1.Value = ProgressBar1.Value + 5
        End If
    End Sub

Bước 5: Ta tạo function blank() để lựa chọn xử lý backup hay restore

Sub blank(ByVal str As String)
        If cmbserver.Text = "" Or cmbdatabase.Text = "" Then
            MsgBox("Server Name & Database Blank Field")
            Exit Sub
        Else
            If str = "backup" Then
                SaveFileDialog1.FileName = cmbdatabase.Text
                SaveFileDialog1.ShowDialog()
                Timer1.Enabled = True
                ProgressBar1.Visible = True
                Dim s As String
                s = SaveFileDialog1.FileName
                query("backup database " & cmbdatabase.Text & " to disk='" & s & "'")
            ElseIf str = "restore" Then
                OpenFileDialog1.ShowDialog()
                Timer1.Enabled = True
                ProgressBar1.Visible = True
                query("RESTORE DATABASE " & cmbdatabase.Text & " FROM disk='" & OpenFileDialog1.FileName & "'")
            End If
        End If
    End Sub

Bước 6: Thực hiện ta tác backup hay restore

+ Backup: Xử lý sự kiện khi click lệnh backup

 Private Sub cmbbackup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbbackup.Click
        blank("backup")
    End Sub

+ Xử lý sự kiện khi click lệnh restore

 Private Sub cmdrestore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdrestore.Click
        blank("restore")
    End Sub

Bước cuối cùng: ta chèn tên server name vào câu lệnh trong sự kiện form_load(), mặc định là (local) hay một sqlserver từ ip trong mạng nội bộ hay internet.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        server("(local)")
    End Sub

Chúc các bạn thành công!

Có gì thắc mắc các bạn hãy để lại comment

Link download demo: backup and restore SQL SERVER with VB.NET

Tags: backup data
0