+2 امتیاز

سلام دوستان میگم در بانک لوکال آیا میشه بک اپ و ریستور انجام داد؟

طبق اموزش من انجام دادم اما خب نمیدونم اگه بانک لوکال باشه چطور میشه انجام داد.همش میزنه چنین فایلی با این نام وجود ندارد؟

1 پاسخ

+2 امتیاز

سلام ، منظورتون رو از اینکه دیتابیس لوکال باشه نمیگیرم ، پشتبان گیری ربطی به این نداره که ببینیم دیتابیس لوکال هست یا نیست در همون پروژه هم لوکال بود !

این کلاس رو در نظر بگیرید :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace Morrakhasi
{
    public class BackupAndRestore
    {

        private string _connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["Morrakhasi.Properties.Settings.dbConnectionString"].ConnectionString;
        private SqlConnection SqlConnection1 = new SqlConnection();

        public BackupAndRestore()
        {
            this.SqlConnection1.ConnectionString = this._connectionString;
        }

        public  void Backup(string filename)
        {
            try
            {
                string command = @"Backup DataBase [" + System.Windows.Forms.Application.StartupPath + "\\db.mdf] To Disk='" + filename + "'";               
                if (SqlConnection1.State != ConnectionState.Open)
                {
                    SqlConnection1.Open();
                }
                SqlCommand SqlCommand1 = null;

                SqlCommand1 = new SqlCommand(command, this.SqlConnection1);
                SqlCommand1.ExecuteNonQuery();                
                MessageBox.Show("تهیه نسخه پشتیبان از اطلا عات با موفقیت انجام شد");
            }

            catch (Exception ex)
            {
                MessageBox.Show("Error : " + ex.Message, ex.Message);
                
            }
        }


        public void Restore(string filename)
        {
            try
            {
                string command = @"ALTER DATABASE [" + System.Windows.Forms.Application.StartupPath + "\\db.mdf]  SET SINGLE_USER with ROLLBACK IMMEDIATE " + " USE master " + " RESTORE DATABASE [" + System.Windows.Forms.Application.StartupPath  +"\\db.mdf] FROM DISK= N'" + filename + "'";                
                SqlCommand SqlCommand1 = null;

                if (SqlConnection1.State != ConnectionState.Open)
                {
                    SqlConnection1.Open();
                }
                SqlCommand1 = new SqlCommand(command, this.SqlConnection1);
                SqlCommand1.ExecuteNonQuery();                
                MessageBox.Show("بازیابی اطلاعات از  نسخه پشتیبان از  با موفقیت انجام شد");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error : ", ex.Message);
            }
        }

    }
}

کلاس بالا رو به پروژتون اضافه کنید . همچنین دیتابیس رو در مسیر فایل اجرایی برنامه قرار بدین . در کلاس بالا فرض شده استم پایگاه داده db هست می تونید تغییرش بدین .

نحوه ی استفاده از کلاس بالا :

Restore :

private void cmdRestore_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            string filename = string.Empty;
            openFileDialog1.Filter = @"SQL Backup Files ALL Files (*.*) |*.*| (*.Bak)|*.Bak";
            openFileDialog1.FilterIndex = 1;
            openFileDialog1.Filter = @"SQL Backup Files (*.*)|";

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                filename = openFileDialog1.FileName;


                BackupAndRestore objBackupAndRestore = new BackupAndRestore();
                objBackupAndRestore.Restore(filename);
            }
        }

Backup :

private void btnBackup_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            string filename = string.Empty;
            saveFileDialog1.OverwritePrompt = true;
            saveFileDialog1.DefaultExt = "";
            saveFileDialog1.Filter = @"SQL Backup Files ALL Files (*.*) |*.*| (*.Bak)|*.Bak";
            saveFileDialog1.FilterIndex = 1;

            saveFileDialog1.Title = "Backup SQL File";
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                filename = saveFileDialog1.FileName;

                BackupAndRestore objBackupAndRestore = new BackupAndRestore();
                objBackupAndRestore.Backup(filename);
            }
        }

 

واقعا ممنون

کار کرد فقط یه سوال اگه بخوایم از بانک روی هاستمون بک اپ بگیریم چطور میشه؟

مثلا این قسمت چطور باید بدست بیارم؟

[" + System.Windows.Forms.Application.StartupPath + "\\abfamdf.mdf]  SET SINGLE_USER with ROLLBACK IMMEDIATE " + " USE master " + " RESTORE DATABASE [" + System.Windows.Forms.Application.StartupPath + "

این قسمتو میگم

System.Windows.Forms.Application.StartupPath

 

توسط (248 امتیاز) 1 9 42
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,920 کاربر

دسته بندی ها

...