تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
النسخة الاحتياطية
#1
هل فيه كود للنسخ الاحتياطي لقاعدة من نوع sql local database
الرد }}}
تم الشكر بواسطة:
#2
(19-04-25, 10:09 PM)محمد بن عطية كتب : هل فيه كود للنسخ الاحتياطي لقاعدة من نوع sql local database

نعم يوجد عندي مثال لما طلبت أرجع للبيت إن شاء الله وأرفقه لك
إذا طُعِنتَ من الخلفِ فاعلمْ أنك في المقدمةِ
الرد }}}
تم الشكر بواسطة: محمد بن عطية
#3
نعم، يمكن عمل نسخة احتياطية (Backup) من قاعدة بيانات SQL LocalDB ، خاصة إذا كنت تستخدم ملف قاعدة بيانات (مثل .mdf) مرتبط بـ LocalDB.

إليك كودًا بسيطًا يقوم بنسخ ملف قاعدة البيانات والملف المصاحب له (.ldf) إلى مجلد النسخ الاحتياطي. يفترض أن قاعدة البيانات غير متصلة (Detached) أو أنه يمكنك فصل الاتصال مؤقتًا:

PHP كود :
Imports System.IO

Public Class BackupHelper
    Public Shared Sub BackupLocalDB
(ByVal dbName As StringByVal backupDirectory As String)
 
       Dim dataDir As String AppDomain.CurrentDomain.GetData("DataDirectory").ToString()
 
       Dim mdfFile As String Path.Combine(dataDirdbName ".mdf")
 
       Dim ldfFile As String Path.Combine(dataDirdbName "_log.ldf")

 
       Dim backupMdf As String Path.Combine(backupDirectorydbName "_backup.mdf")
 
       Dim backupLdf As String Path.Combine(backupDirectorydbName "_backup_log.ldf")

 
       Try
            
' إنشاء مجلد النسخ الاحتياطي إن لم يكن موجوداً
            Directory.CreateDirectory(backupDirectory)

            ' 
نسخ الملفات
            File
.Copy(mdfFilebackupMdfTrue)
 
           File.Copy(ldfFilebackupLdfTrue)

 
           MessageBox.Show("تم إنشاء النسخة الاحتياطية بنجاح""نسخ احتياطي"MessageBoxButtons.OKMessageBoxIcon.InformationMessageBoxDefaultButton.Button1MessageBoxOptions.RightAlign Or MessageBoxOptions.RtlReading)
 
       Catch ex As Exception
            MessageBox
.Show("حدث خطأ أثناء النسخ الاحتياطي: " ex.Message"خطأ"MessageBoxButtons.OKMessageBoxIcon.ErrorMessageBoxDefaultButton.Button1MessageBoxOptions.RightAlign Or MessageBoxOptions.RtlReading)
 
       End Try
 
   End Sub
End 
Class 


طريقة الاستخدام من النموذج (Form)

PHP كود :
' مثال: عند الضغط على زر النسخ الاحتياطي
Private Sub BtnBackup_Click(sender As Object, e As EventArgs) Handles BtnBackup.Click
    Dim databaseName As String = "MyDatabase" ' 
اسم القاعدة بدون الامتداد
    Dim backupPath 
As String "C:\BackupFolder"

 
   BackupHelper.BackupLocalDB(databaseNamebackupPath)
End Sub 


كود الاستعادة من النسخة الاحتياطية (Restore)



PHP كود :
Imports System.IO

Public Class RestoreHelper
    Public Shared Sub RestoreLocalDB
(ByVal dbName As StringByVal backupDirectory As String)
 
       Dim dataDir As String AppDomain.CurrentDomain.GetData("DataDirectory").ToString()
 
       Dim mdfFile As String Path.Combine(dataDirdbName ".mdf")
 
       Dim ldfFile As String Path.Combine(dataDirdbName "_log.ldf")

 
       Dim backupMdf As String Path.Combine(backupDirectorydbName "_backup.mdf")
 
       Dim backupLdf As String Path.Combine(backupDirectorydbName "_backup_log.ldf")

 
       Try
            
' تأكد أن النسخة الاحتياطية موجودة
            If Not File.Exists(backupMdf) OrElse Not File.Exists(backupLdf) Then
                MessageBox.Show("النسخة الاحتياطية غير موجودة!", "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error,
                                MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign Or MessageBoxOptions.RtlReading)
                Return
            End If

            ' 
حذف الملفات الأصلية إن وُجدت
            If File
.Exists(mdfFileThen File.Delete(mdfFile)
 
           If File.Exists(ldfFileThen File.Delete(ldfFile)

 
           ' نسخ النسخة الاحتياطية مكان الأصلية
            File.Copy(backupMdf, mdfFile)
            File.Copy(backupLdf, ldfFile)

            MessageBox.Show("تمت استعادة النسخة الاحتياطية بنجاح.", "استعادة", MessageBoxButtons.OK, MessageBoxIcon.Information,
                            MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign Or MessageBoxOptions.RtlReading)
        Catch ex As Exception
            MessageBox.Show("حدث خطأ أثناء الاستعادة: " & ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error,
                            MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign Or MessageBoxOptions.RtlReading)
        End Try
    End Sub
End Class 


الاستخدام من الفورم (مثال عند الضغط على زر)

PHP كود :
Private Sub BtnRestore_Click(sender As ObjectAs EventArgsHandles BtnRestore.Click
    Dim dbName 
As String "MyDatabase"
 
   Dim backupPath As String "C:\BackupFolder"

 
   RestoreHelper.RestoreLocalDB(dbNamebackupPath)
End Sub 

ملاحظات مهمة جدًا:
تأكد من غلق أي اتصال مع قاعدة البيانات قبل تنفيذ الاستعادة.
يمكنك مثلاً استخدام SqlConnection.Close() أو حتى إعادة تشغيل البرنامج بعد الاستعادة.
هذه الطريقة تعمل مع ملفات mdf المرتبطة بتطبيقك باستخدام |DataDirectory|.
يمكن أيضًا تعديل الكود لتحديث الاتصال أو إعادة التحميل بعد الاستعادة إذا رغبت.

بالتوفيق.
الرد }}}


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تعديل مسار مكان حفظ النسخة الاحتياطية مصمم هاوي 6 800 02-03-25, 01:06 PM
آخر رد: atefkhalf2004
  منع تشغيل البرنامج اكثر من مره مع توجيه امر الى النسخة الشغاله معاذ_ابراهيم 7 4,146 29-03-23, 08:11 AM
آخر رد: عبدالله الدوسري
  أفضل مثال في عمل النسخة الاحتياطية باقي له خطوة بس ويكتمل المهنا 13 4,035 01-08-20, 12:27 AM
آخر رد: atefkhalf2004
  [VB.NET] سؤال بخصوص الكود تبع النسخة التجريبية 0theghost0 1 1,448 03-02-20, 03:25 PM
آخر رد: asemshahen5
  [VB.NET] النسخة التجريبية bensadi 3 2,140 09-01-19, 09:07 PM
آخر رد: bensadi
  [سؤال] استبدال النسخة القديمة بالنسخة المحدثة ابو يوسف النواوي 2 1 1,609 22-10-18, 05:52 PM
آخر رد: rnmr
  تحديث الإصدار و حذف النسخة القديمة hichem1 36 9,445 21-06-18, 01:02 AM
آخر رد: عبدالله الدوسري
  اريد مساعدتك في كود النسخة الاحتياطيه للقاعدة البيانات واستراجها ب الفيجوال بيسك nosa 1 1,617 02-05-18, 11:39 AM
آخر رد: mohammedvego
  تسمية النسخة الإحتياطية أحمد فتح الرحمن 2 1,792 18-11-17, 09:12 PM
آخر رد: أحمد فتح الرحمن
  إسترجاع النسخة الإحتياطية أحمد فتح الرحمن 2 1,960 01-11-17, 11:54 PM
آخر رد: أحمد فتح الرحمن

التنقل السريع :


يقوم بقرائة الموضوع: