استعادة نسخ احتياطي - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175) +--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176) +--- الموضوع : استعادة نسخ احتياطي (/showthread.php?tid=29237) |
استعادة نسخ احتياطي - رسول555 - 03-04-19 السلام عليكم اخوتي الاعزار
استخدمت الكود المرفق في اسفل لعمل تسخ احتياطي واستعادة في النسخ نجح الامر لكن في الاستعادة يعطي خطا كما في الصور
(كود النسخ الاحتياطي)
كود : if (textBox1.Text == "") (كود الاستعادة الذي يعطي خطا) كود : private void button1_Click(object sender, EventArgs e) مع الشكر RE: استعادة نسخ احتياطي - elgokr - 04-04-19 وعليكم السلام ورحمة الله وبركاته
تفضل اخى هذا كود الاستدعاء كود : if (textBox1.Text == "") كل ما كان ينقصه فقط كود تحويل قاعدة البيانات من OFFLINE الى ONLINE
وكل ما عليك ان تتاكد ان اختيار المسار صحيح فى textBox1 تجنباً لمشكلة خطاء المسار فى الاسترجاع
تحياتى لك
وتمنياتى لك التوفيق
RE: استعادة نسخ احتياطي - رسول555 - 06-04-19 شكرا لك اخي العزيز لكن عند كتابة الكود يعطي خطا تحت (con.State) مع الشكر
كود : if (con.State = ConnectionState.Closed) { con.Open(); } استبدلته بالكود التالي ايضا يعطي خطا
كود : if (con.State == ConnectionState.Closed) { con.Open(); } RE: استعادة نسخ احتياطي - رسول555 - 06-04-19 شكرا لكم اخوتي الاعزاء تم حل المشكلة وقد استخدمت الكود التالي اذا امكن احد يستطيع شرح الكود
كود : private void button4_Click(object sender, EventArgs e) RE: استعادة نسخ احتياطي - elgokr - 06-04-19 بخصوص الصورة فى ردك قبل الاخير
يشير ان الاتصال بقاعدة البيانات من خلال الكود غير صحيح
وقد يكون السبب بان سيرفر SQL كان مغلق ويحتاج الى اعادة تشغيل
وكان ابسط ما يمكن حل المشكلة سريعاً هو اعادة تشغيل Windows
بخصوص ردك الاخير لكود الحل هو نفسه الكود الذى كنت تستخدمه
ولكن قام بتقسيم كود التنفيذ على مرحلتين وهو المرحلة الاولى كود : "ALTER DATABASE [" + database + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ومن ثم قام بتنفيذ عملية الاسترجاع فى المرحلة الثانية من خلال كود : USE MASTER RESTORE DATABASE [" + database + "] FROM DISK='" + textBox2.Text + "'WITH REPLACE; ومن ثم قام بتنفيذ المرحلة الثالثة وهى الاعادة لما تم فى المرحلة الاولى من خلال كود : ALTER DATABASE [" + database + "] SET MULTI_USER والفكرة من جملة SINGLE_USER و MULTI_USER
هو نفسه الكود لديك فى الاساس واللى هو OFFLINE و ONLINE
الفكرة منها لو كان قاعدة البيانات تحتوى على عدد من المستخدمين لتعدد الاستخدام
فمثلاً انت عامل اسم مستخدم باسم user1 للبرنامج الخاص بك
ويستخدم قاعدة البيانات فى برنامج اخر تحت مستخدم باسم user2
فكل من SINGLE_USER و OFFLINE
هو لتعطيل جميع المستخدمين اى ايقافهم عن العمل
فكل من MULTI_USER و ONLINE
هو لتفعيل جميع المستخدمين اى لاعادة العمل للمستخدمين
واضافة لما قام به مضافاً عن كودك ببداية الموضوع
وهو انه استخدم اسم قاعدة البيانات من خلال جلبه تلقائي من كود الاتصال con
من خلال هذا الكودكود : string database = con.Database.ToString(); لانك كنت تكتب اسم قاعدة البيانات يدوياً وهو باسم كود : DB اتمنى ان تكون الصورة وضحت معك
تحياتى لك
وتمنياتى لك التوفيق
RE: استعادة نسخ احتياطي - رسول555 - 13-04-19 احسنت وجعله الله في ميزان حسناتك يا اخي العزيز
|