الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[مخالف - لم يستخدم البحث :][تنبيه - عنوان غير مناسب : ]السلام عليكم و رحمة الله و بركاته .. كنت أستخدم كود VB.NET لعمل نسخ إحتياطى إحتياطى BACKUP و إستعادة قاعدة البيانات مرة أخرى RESTORE لقاعدة بيانات SQ

مغلق
بدأه محمد أحمد إبراهيم في 25 ديسمبر 2011 · 2 رد · 603 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته ..

كنت أستخدم كود VB.NET لعمل نسخ إحتياطى إحتياطى BACKUP و إستعادة قاعدة البيانات مرة أخرى RESTORE لقاعدة بيانات SQL SERVER 2005 كان يعمل بشكل صحيح و عندما قمت بإستخدام نفس الكود مع تغيير قاعدة البيانات إلى SQL SERVER 2008 لم يعمل الكود بشكل صحيح .. و إلى حضراتكم الكود و رسالة الخطأ .

* كود الـ BACKUP

Imports System.Data

Imports System.Data.SqlClient

Imports Microsoft.SqlServer.Management.Common

Imports Microsoft.SqlServer.Management.Smo

Imports Microsoft.SqlServer

Imports Microsoft.SqlServer.Server

Imports Microsoft.SqlServer.Management

Private Const srvrConnectionString As String = "Data Source=MOHAMED-PC\SQLEXPRESS;Persist Security Info=True;User ID=sa;Password=1900818;Connect Timeout=30"

Public Sub Make_Backup()

Dim bError As Boolean

Dim dlgSaveFile As New SaveFileDialog()

bError = False

dlgSaveFile.Filter = "SQL Server database backup files|*.bak"

dlgSaveFile.FileName = "paintsDB_backup"

'********************************** حالة إلغاء إستعادة النسخة *********************************

select Case dlgSaveFile.ShowDialog(MDI)

Case Windows.Forms.DialogResult.Cancel

Exit Sub

Case Windows.Forms.DialogResult.OK

MDI.update()

'////////////////////////////////////////////////////////////////////////////////////////////////////////

FrmLoading.LblMsg.Text = "...... جارى إنشاء النسخة الإحتياطية لقاعدة البيانات"

FrmLoading.ShowDialog()

'/////////////////////////////////////////////////////////////////////////////////////////////////////////

'Null إنشاء كائن الإتصال

Dim sqlConnection As New SqlClient.SqlConnection(srvrConnectionString)

Dim srvrConnection As New ServerConnection(sqlConnection)

'Null ربط الإتصال بالملقم

Dim srvr As New Server(srvrConnection)

'Null إنشاء الكائن الذي سنستعمله لإنشاء النسخة الإحتياطية

Dim bkp As New Backup()

'Null تحديد العملية في إنشاء نسخة احتياطية لكامل قاعدة البيانات

bkp.Action = BackupActionType.Database

'Null تحديد اسم قاعدة البيانات

bkp.Database = "paints"

'Null تعليق على النسخة الإحتياطية

bkp.BackupSetDescription = "Database " + "paints" + " backup " + DateTime.Today.ToShortDateString()

'Null إسم النسخة الإحتياطية

bkp.BackupSetName = "paints" + "_backup"

'Null إنشاء نسخة كاملة لقاعدة البيانات وليس فقط للبيانات التي تم تغييرها

bkp.Incremental = False

'Null حساب مجموع البيانات للتأكد من صحة النسخة الإحتياطية

bkp.Checksum = True

'Null اقتطاع سجل قاعدة البيانات بعد إنشاء النسخة الإحتياطية

bkp.LogTruncation = BackupTruncateLogType.Truncate

'Null تحديد نوع الجهاز الذي سيتم عليه إنشاء النسخة الإحتياطية في ملف

Dim bdi As New BackupDeviceItem(dlgSaveFile.FileName, DeviceType.File)

bkp.Devices.Add(bdi)

Try

'Null بدأ عملية إنشاء النسخة الإحتياطية لقاعدة البيانات

bkp.SqlBackup(srvr)

Catch ex As Exception

'MessageBox.Show("فشلت عملية إنشاء النسخة الإحتياطية لقاعدة البيانات", "--", MessageBoxButtons.OK, MessageBoxIcon.Error)

MsgBox(ex.InnerException.ToString)

'MsgBox(ex.Message)

bError = True

End Try

If Not bError Then MessageBox.Show("تمت عملية إنشاء النسخة الإحتياطية بنجاح", " ---", MessageBoxButtons.OK, MessageBoxIcon.Information)

End select

'**********************************************************************************************

'***************************************************************************************

FrmLoading.LblMsg.Text = "...... جارى الخروج من البرنامج"

FrmLoading.ShowDialog()

Con.Close()

'End

End Sub

* كود الـ RESTORE

Public Sub Restore_Backup()

Dim bError As Boolean

Dim dlgOpenFile As New OpenFileDialog()

bError = False

dlgOpenFile.Filter = "SQL Server database backup files|*.bak"

'********************************** حالة إلغاء إستعادة النسخة *********************************

select Case dlgOpenFile.ShowDialog(MDI)

Case Windows.Forms.DialogResult.Cancel

Exit Sub

Case Windows.Forms.DialogResult.OK

MDI.update()

'////////////////////////////////////////////////////////////////////////////////////////////////////////

FrmLoading.LblMsg.Text = "...... جارى إستعادة قاعدة البيانات من النسخة الإحتياطية"

FrmLoading.ShowDialog()

'/////////////////////////////////////////////////////////////////////////////////////////////////////////

'Null إنشاء كائن الإتصال

Dim sqlConnection As New SqlClient.SqlConnection(srvrConnectionString)

Dim srvrConnection As New ServerConnection(sqlConnection)

'Null ربط الإتصال بالملقم

Dim srvr As New Server(srvrConnection)

'Null إنشاء الكائن الذي سنستعمله لاستعادة قاعدة البيانات من النسخة الإقتصادية

Dim rstr As New Restore()

'Null استبدال قاعدة البيانات بأكملها

rstr.Action = RestoreActionType.Database

'Null التأكد من صحة البيانات من خلال التأكد من حساب مجموع البيانات

rstr.Checksum = True

'Null استكمال العملية حتى بعد حصول أخطاء في عملية الإستعادة

rstr.ContinueAfterError = True

'Null اسم قاعدة البيانات التي سيتم استبدالها

rstr.Database = "paints"

'Null تحديد الجهاز الذي تتواجد به النسخة الإحتياطية

rstr.Devices.Add(New BackupDeviceItem(dlgOpenFile.FileName, DeviceType.File))

'Null قاعدة البيانات الحالية سيتم استبدالها بتلك الموجودة على النسخة الإحتياطية

rstr.ReplaceDatabase = True

'Null تأكيد استبدال قاعدة البيانات بأكملها و ليس جزء منها فقط

rstr.Partial = False

Try

'Null عملية التأكد من النسخة الإحتياطية قبل بدإ عملية الإستبدال

If rstr.SqlVerify(srvr) Then

'Null إيقاف كل ماهو مرتبط بقاعدة البيانات

srvr.KillAllProcesses("paints")

'Null عزل قاعدة البيانات عن الملقم

srvr.DetachDatabase("paints", True)

'Null بدأ عملية استعادة قاعدة البيانات

rstr.SqlRestore(srvr)

End If

Catch ex As Exception

MessageBox.Show("فشلت عملية استعادة قاعدة البيانات من النسخة الإحتياطية", "----", MessageBoxButtons.OK, MessageBoxIcon.Error)

bError = True

End Try

If Not bError Then MessageBox.Show("تمت عملية استعادة قاعدة البيانات من النسخة الإحتياطية بنجاح", "---", MessageBoxButtons.OK, MessageBoxIcon.Information)

End select

'***************************************************************************************

FrmLoading.LblMsg.Text = "...... جارى الخروج من البرنامج"

FrmLoading.ShowDialog()

Con.Close()

End

end sub

أما بخصوص رسالة الخطأ فهى مرفقة فى الصورة .. مرفق الرسالتين الآتيتين

MsgBox(ex.InnerException.ToString)

MsgBox(ex.Message)

المصغرات المرفقة

post-110204-084390800 1324793669_thumb.g

post-110204-029069600 1324793679_thumb.g

المرفقات
Untitled.gifUntitled1.gif
1
#2

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

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

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

.:: Wish to become better and better ::.

#3

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته

مرحباً بكم في منتدى الفريق العربي للبرمجة

تأسف إدارة المنتدى لغلق الموضوع وذلك لمخالفته قوانين المشاركات، فقرة استخدام البحث قبل السؤال.

قواعد طرح المشاركات

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

.:: Wish to become better and better ::.

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…