Imports System.IO
Imports System.Data.SqlClient
Public Class Form_DatabseManager
Dim SqlConnection1 As New SqlClient.SqlConnection("Data Source=" & My.Computer.Name & ";Initial Catalog=tempdb;Integrated Security=SSPI;")
Dim p = Application.StartupPath & "\BackupFolder\"
Dim f1 As String
Dim f2 As String
Dim MYDBNAME As String
Dim dt As String
Private Sub Form_DatabseManager_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
' ضبط مكان الفورم
Me.StartPosition = FormStartPosition.WindowsDefaultLocation
Me.TopMost = True
Me.Top = 50 ' تكبر القيمة ستنزل
Me.Height = 390
Me.Width = 749
Fill_Combdatabases()
End Sub
Private Sub Fill_Combdatabases()
Dim DS As New DataSet
Dim str As String = "Select DISTINCT name from master.dbo.sysdatabases where name not IN('master','msdb','tempdb' ,'model') and has_dbaccess(Name) = 1 order by name "
Dim ADP As SqlClient.SqlDataAdapter
ADP = New SqlClient.SqlDataAdapter(str, SqlConnection1)
DS.Clear()
ADP.Fill(DS)
Me.ComboBox1.Items.Clear()
Me.ComboBox2.Items.Clear()
Dim i As Integer
For i = 0 To DS.Tables(0).Rows.Count - 1
Me.ComboBox1.Items.Add(DS.Tables(0).Rows(i).Item(0))
Me.ComboBox2.Items.Add(DS.Tables(0).Rows(i).Item(0))
Next
ADP.Dispose()
End Sub
Private Sub ButBackup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButBackup.Click
Me.Cursor = Cursors.WaitCursor
Try
Dim CMD As New SqlCommand("backup database " & Me.ComboBox1.Text.Trim & " to disk=@PATHFILE with init", SqlConnection1)
CMD.Parameters.AddWithValue("@PATHFILE", Me.TextDirectory1.Text)
SqlConnection1.Open()
CMD.ExecuteNonQuery()
MessageBox.Show("تم إنشاء نسخـه احتياطية من قاعــدة البيانات الحالية" & " فى المسار التالى " & vbCrLf & vbCrLf & Me.TextDirectory1.Text.Trim, "انشاء نسخه احتياطيه", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2, MessageBoxOptions.DefaultDesktopOnly)
Catch ex As Exception
MessageBox.Show("عفـواً ... فشل إنشاء نسخـه احتياطيـة ", "إنشاء نسخـه احتياطيه", MessageBoxButtons.OK, MessageBoxIcon.Information)
Finally
SqlConnection1.Close()
End Try
Me.ComboBox1.Text = ""
Me.TextDirectory1.Text = ""
Me.Cursor = Cursors.Default
End Sub
Private Sub ButDirectory1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButDirectory1.Click
If Me.ComboBox1.SelectedIndex = -1 Then
MessageBox.Show("من فضلك حدد قاعـدة البيانات ", "الرجـاء ... تحديد قاعــدة البيانات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
Me.ComboBox1.Focus()
Exit Sub
End If
If Directory.Exists(p) = False Then Directory.CreateDirectory(p)
Me.TextDirectory1.Text = p & Me.ComboBox1.Text.Trim & Format(Now, "dd-MM-yyyy-hh-mm-tt") & ".dmp"
End Sub
Private Sub ButDirectory2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButDirectory2.Click
Dim dlgCommonDialog1 As New OpenFileDialog
dlgCommonDialog1.InitialDirectory = p
dlgCommonDialog1.Title = "الرجـاء ... تحديد موقـع النسخـة الاحتياطيـة"
dlgCommonDialog1.Filter = "SQL DATABASE FILES BACKUP (*.dmp)|*.dmp|All Files(*.*)|*.*"
If dlgCommonDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
Me.TextDirectory2.Text = dlgCommonDialog1.FileName
End If
End Sub
Private Sub ButRestor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButRestor.Click
If Len(Me.ComboBox2.Text) = 0 Then
MessageBox.Show("من فضلك حدد قاعـدة البيانات ", "الرجـاء ... تحديد قاعـدة البيانات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading)
Me.ComboBox2.Focus()
Exit Sub
End If
Me.Cursor = Cursors.WaitCursor
Try
Dim CMD As New SqlCommand("restore database " & Me.ComboBox2.Text.Trim & " from disk =@PATHFILE ", SqlConnection1)
SqlConnection1.Open()
CMD.Parameters.AddWithValue("@PATHFILE", Me.TextDirectory2.Text)
CMD.ExecuteNonQuery()
MessageBox.Show("تم استرجاع البيانات من النسخـة الاحتياطيـة بنجــاح", "استرجاع البيانات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2)
Catch ex As Exception
MessageBox.Show("عفـواً ... فشل استرجاع البيانات من النسخـة الاحتياطيـة", "استرجاع البيانات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2)
Finally
SqlConnection1.Close()
End Try
Me.ComboBox2.Text = ""
Me.TextDirectory2.Text = ""
Me.Cursor = Cursors.Default
End Sub
Private Sub TEXT3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextDirectory1.TextChanged
Me.ButBackup.Enabled = Me.TextDirectory1.TextLength > 0 AndAlso Len(Me.ComboBox1.Text) > 0
End Sub
Private Sub TEXT4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextDirectory2.TextChanged
Me.ButRestor.Enabled = Me.TextDirectory2.TextLength > 0 AndAlso Len(Me.ComboBox2.Text) > 0
End Sub
Private Sub ButExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButExit.Click
Me.Close()
End Sub
End Class