عرب تك
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

اذهب الى الأسفل
avatar
tarik
عدد المساهمات : 134
تاريخ التسجيل : 08/10/2012

النسخ الاحتياطى واسترجاع البيانات Empty النسخ الاحتياطى واسترجاع البيانات

الثلاثاء أكتوبر 09, 2012 12:38 pm
كلنا يعلم أن تطبيق البرنامج فى المقام الأول يجب أن يهتم براحة العميل وتسهيل عملية الإستخدام

ولذلك حتى لا نقوم بتكليف العميل ما لا يطيق, أن يقوم كل يوم بالدخول لقاعدة البيانات لعمل نسخ إحتياطى و إسترجاع البيانات إذا دعت الضرورة لذلك, نعطيه خيار يقوم بتلك الوظائف من خلال الرنامج.

وكنت فى أحد برامجى قد أعددت هذا الأمر وأحببت أن تعم الفائدة..

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

نقوم بعمل قائمة رئيسية ويكون فيها عنصر ين (أحدهما حفظ و الآخر فتح) كما موضح فى الصورة السابقة.

قبل أن نبدأ بعملية كتابة كود الحفظ يجب علينا عمل موديول (Module) ونضع فيه هذا الكود

الكود:

Module Module
Imports System.Data.SqlClient
Public myConnection As SqlConnection
    Public reader As SqlClient.SqlDataReader
    Public myCommand As SqlClient.SqlCommand
    Public mydataadapter As SqlClient.SqlDataAdapter
    Public con_str As String = "server=(local);trusted_connection=true;database=&Your database Name&" مع مراعاة إسم الداتا بيز

  Public Function Command(ByVal Command_query As String) As Integer
        myConnection = New SqlClient.SqlConnection(Modul.con_str)
        myCommand = New SqlClient.SqlCommand(Command_query, myConnection)
        myCommand.Connection.Open()
        Return myCommand.ExecuteNonQuery
        myCommand.Connection.Close()
    End Function
End Module
ولضمان الصحة ظلل كل الموديول وبعد ذلك إعمل طباعة لكل الكود

وبعد ذلك فى العنصر حفظ من القائمة الرئيسية ضع هذاالكود(ونحتاج هنا ل SaveFileDialog و ProgressBar )
الكود:

Cursor = Cursors.WaitCursor
        SaveFileDialog1.OverwritePrompt = True
        SaveFileDialog1.InitialDirectory = "D:\BackupData" 'change to your backup path
        SaveFileDialog1.Filter = "Backup Files (*.Bak)|*.BaK"
        If SaveFileDialog1.ShowDialog() = DialogResult.OK Then 'And Not SaveFileDialog1.FileName.Equals("") Then
            '    MsgBox("Please type the backup file name " & vbCr & "فضلاً أدخل إسم ملف النسخة الإحتياطية", MsgBoxStyle.Critical, msg_title)
            'Else
            OpenFileDialog1.InitialDirectory = "D:\BackupData"
            Dim BackupInformation As String = SaveFileDialog1.FileName
            Command("backup database Your_DataBase_Name to disk='" & BackupInformation & "'with password='Choose your password'")
            Dim I As Integer
            For I = 1 To 5000
                ProgressBar1.Visible = True
                ProgressBar1.Minimum = 1
                ProgressBar1.Maximum = 5000
                ProgressBar1.Step = 1
                ProgressBar1.Value = I
                If I = 5000 Then
                    ProgressBar1.Visible = False
                End If
            Next
            MsgBox("Database was successfully Backuped" & vbCr & "تم نسخ البيانات بنجاح", MsgBoxStyle.Information, msg_title)
        End If
        Cursor = Cursors.Default
وبعد ذلك فى العنصر حفظ من القائمة الرئيسية ضع هذاالكود(ونحتاج هنا ل OpenFileDialog )


الكود:

Cursor = Cursors.WaitCursor
        OpenFileDialog1.InitialDirectory = "D:\BackupData" 'change to your backup path
        OpenFileDialog1.Filter = "Backup Files (*.BaK)|*.BaK"
        If OpenFileDialog1.ShowDialog() = DialogResult.OK And Not OpenFileDialog1.FileName.Equals("") Then
            Command("use master RESTORE DATABASE Your Database name FROM disk='" & OpenFileDialog1.FileName & "' With password='Choose Your Password', Move 'Your Database name_Data' to 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Your Database name_Data.mdf',Move 'Your Database name_Log' to 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Your Database name_Log.ldf',Replace")
            Dim I As Integer
            For I = 1 To 5000
                ProgressBar1.Visible = True
                ProgressBar1.Minimum = 1
                ProgressBar1.Maximum = 5000
                ProgressBar1.Step = 1
                ProgressBar1.Value = I
                If I = 5000 Then
                    ProgressBar1.Visible = False
                End If
            Next
            MsgBox("Database was successfully restored" & vbCr & "تم إسترجاع البيانات بنجاح", MsgBoxStyle.Information, msg_title)
        Else
            MsgBox("Error !,No file" & vbCr & "خطأ، لايوجد ملف", MsgBoxStyle.Information, msg_title)
        End If
     
        Cursor = Cursors.Default
ملحوظة:
كلمة Choose Your Password تعنى أن تكتب الباسورد اللى إنت عاوزو علشان تحمى النسخة الإحتاطية
الإخوة الذين يستخدمون إصدار قاعدة بيانات أحدث من sqlserver 2000 يجب عليهم مراعاة مسار حفظ و فتح النسخة الإحتياطية.

و الآن جرب و إدعيلى
الرجوع الى أعلى الصفحة
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى