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

عمل backup and restore

بدأه Ahmed_Amer في 20 مارس 2012 · 7 رد · 928 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي مشروع بلغة C# قمت بعمل الأتي لإضافة قاعدة بيانات داخل المشروع بهذه الطريقة:

183683336.jpg

ثم قمت بإضافة button لعمل backup لقاعدة البيانات التي سبق إنشاؤها من داخل soulution explorer الخاصة بالمشروع وقمت بإضافة saveFileDialog بالشكل التالي:

157893804.jpg

وقمت بإدراج المكتبات الخاصة بعملية الـ backup and restor الاكواد الخاصة بذلك هي:

using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;

ثم قمت بكتابة الكود التالي داخل الـ button لعمل backup لقاعدة البيانات التي سبق انشاؤها داخل المشروع

            try
            {
                saveFileDialog1.Filter = "SQL Server database backup files|*.bak";
                saveFileDialog1.Title = "Database Backup";

                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                                     string connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Database1.mdf;Integrated Security=True;User Instance=True";
                    using (SqlConnection conn = new SqlConnection(connStr))
                    {
                        string sqlStmt = String.Format("BACKUP DATABASE Database1 TO DISK='{0}'", saveFileDialog1.FileName);

                        using (SqlCommand bu2 = new SqlCommand(sqlStmt, conn))
                        {
                            conn.Open();
                            bu2.ExecuteNonQuery();
                            conn.Close();

                            MessageBox.Show("ok");
                        }
                    }
                } 

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

لكن هذا الكود لا يعمل ... كيف يمكنني القيام بعمل backup لقاعدة بيانات مرفقة داخل مشروع مثل السابق ... بحيث عند إعطاء المشروع إلى أحد العملاء يستطيع عمل backup لقاعدة البيانات ..

ملحوظة: قمت بتجربة العديد من الاكواد ولكن بلا جدوى ...

سؤال أخر كيف يمكن التعديل على الكود السابق لعمل restor لقاعدة البيانات بعد اختيار المستخدم لمسار نسخة الـ backup التي سبق إنشاؤها

أرجو مشاركتي الحل ... وشكرا ...

تم تعديل هذه المشاركة بواسطة Ahmed_Amer في 21 مارس 2012 في 11:57

#3
TareqVB كتب:

ما هو الخطأ الذي يظهر عندك ؟

أنا قمت بتعديل اسم قاعدة البيانات إلى database2 ومن ثم تعديلها في الكود

والخطأ كالتالي

334128290.jpg

تم تعديل هذه المشاركة بواسطة Ahmed_Amer في 21 مارس 2012 في 12:03

#4

40 مشاهدة ولا رد ... حتى الأن ...

:sad: :sad: :sad:

#5

الخطأ يقول ان database2 غير موجودة .

واعتقد الحل هو باضافة كلمة Database= YourdatabaseName الى جملة الاتصال, اي تصبح جملة الاتصال كمايلي :

string connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Database1.mdf;Integrated Security=True;User Instance=True;Database= YourdatabaseName "

ولعمل الباك اب

string sqlStmt = String.Format("BACKUP DATABASE  YourdatabaseName  TO DISK='{0}'", saveFileDialog1.FileName);

ولعمل استرجاع لقاعدة البيانات يجب ان تقطع الاتصالات مع القاعدة ثم تتصل على قاعدة البيانات master وتقوم بالاسترجاع وابحث عن الطريقة

1
#6
TareqVB كتب:

الخطأ يقول ان database2 غير موجودة .

واعتقد الحل هو باضافة كلمة Database= YourdatabaseName الى جملة الاتصال, اي تصبح جملة الاتصال كمايلي :

string connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + @"\Database1.mdf;Integrated Security=True;User Instance=True;Database= YourdatabaseName "

ولعمل الباك اب

string sqlStmt = String.Format("BACKUP DATABASE  YourdatabaseName  TO DISK='{0}'", saveFileDialog1.FileName);

ولعمل استرجاع لقاعدة البيانات يجب ان تقطع الاتصالات مع القاعدة ثم تتصل على قاعدة البيانات master وتقوم بالاسترجاع وابحث عن الطريقة

شكرا جزيلا ... جزاك الله كل خير ... وجعله في ميزان حسناتك ...

#7

هل ممكن هذا الكود ولكن لقاعدة بيانات اكسس ؟؟

#8
اقتباس
هل ممكن هذا الكود ولكن لقاعدة بيانات اكسس ؟؟

 

بالنسبة للاكسس فالامر مختلف كليا .

واعتقد بالنسبة للاكسس تحتاج فقط الى عملية نسخ قاعدة البيانات الى مكان آخر .

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