25-08-22, 10:54 AM
السلام عليكم ورحمة الله
اخواني استخدم الكود البرمجي الاتي لغرض النسخ الاحتياطي والاسترجاع
ويعملون بشكل جيد .. لكن الاشكالية الوحيدة انه بعد عملية النسخ الاختياطي والاسترجاع ... مؤشر الماوس يتغير الى حالة التحميل ويبقى في شكل حالة التحميل حتى بعد اكمال النسخ الاحتياطي او الاسترجاع
اخواني استخدم الكود البرمجي الاتي لغرض النسخ الاحتياطي والاسترجاع
ويعملون بشكل جيد .. لكن الاشكالية الوحيدة انه بعد عملية النسخ الاختياطي والاسترجاع ... مؤشر الماوس يتغير الى حالة التحميل ويبقى في شكل حالة التحميل حتى بعد اكمال النسخ الاحتياطي او الاسترجاع
كود :
Sub Backup()
Dim dt As DateTime = Today
Dim destdir As String = "possystemdb" & System.DateTime.Now.ToString("dd-MM-yyyy_h-mm-ss") & ".bak"
Dim objdlg As New SaveFileDialog
objdlg.FileName = destdir
objdlg.ShowDialog()
Filename = objdlg.FileName
Cursor = Cursors.WaitCursor
Timer2.Enabled = True
con.Open()
Dim sql As String = "backup database possystemdb to disk='" & Filename & "'with init,stats=10"
Dim cmd As New SqlCommand(sql)
cmd.Connection = con
cmd.ExecuteReader()
con.Close()
MessageBox.Show("تم حفظ النسخة الاحتياطية من قاعدة البيانات")
End Sub
Public Sub RestoreDatabase()
Try
With OpenFileDialog1
.Filter = ("DB Backup File|*.bak;")
.FilterIndex = 4
End With
'Clear the file name
OpenFileDialog1.FileName = ""
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
Cursor = Cursors.WaitCursor
Timer2.Enabled = True
SqlConnection.ClearAllPools()
con.Open()
Dim sql As String = "USE Master ALTER DATABASE possystemdb SET Single_User WITH Rollback Immediate Restore database possystemdb FROM disk='" & OpenFileDialog1.FileName & "' WITH REPLACE ALTER DATABASE possystemdb SET Multi_User "
Dim cmd As New SqlCommand(sql)
cmd.Connection = con
cmd.ExecuteReader()
con.Close()
MessageBox.Show("تمت استعادة قاعدة البيانات بنجاح", "استعادة القاعدة ", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub