# پایگاه‌های داده > SQL Server > مدیریت دیتابیس (Database Administration) > Backup & Restore >  پشتیبان گیری از بانک اطلاعاتی sql

## catgirl

سلام.من با استفاده از دستورات زیر می خوام از بانک اطلاعاتی پشتیبان گیری کنم ولی خطای زیر رو بهم میده.
متن خطا:Cannot open backup device 'C:\BackupDatabaseLibrary\Backup.MDF'. Operating system error 3(The system cannot find the path specified.).
BACKUP DATABASE is terminating abnormally.

قطعه کد مورد استفاده
System.IO.Directory.CreateDirectory(@"C:\BackupDat abaseLibrary");

//پشتیبان گیری از بانکاطلاعاتی 
SqlConnection con = newSqlConnection();
con.ConnectionString = "Data Source=localhost;initial catalog=bookstore;Integrated Security=true";
SqlCommand cmd = newSqlCommand();
//try{
cmd.Connection = con;
con.Open();
//BACKUP DATABASE نام بانک اطلاعاتی TO DISK = 'مسیر پشتیبان گیری بانک اطلاعاتی'
string query = "BACKUP DATABASE bookstore TO DISK = 'C:\\BackupDatabaseLibrary\\Backup.MDF'";
cmd.CommandText = query;
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();

----------


## ma.rad

ایراد از ConnectionString هست
بانک تون sql server یا sql express?

----------


## reza2012

private void btnBackup_Click(object sender, EventArgs e)
        {

            if (txtBackup.Text.Length > 0)
            {
                SqlConnection c = new SqlConnection(@"Data Source=TICE3\HAAMED;Initial Catalog=Newcollege5;Integrated Security=True");

            try
            {
                c.Open();
                SqlCommand cm = new SqlCommand(@" USE Newcollege5   BACKUP DATABASE Newcollege5 TO  DISK ='" + txtBackup.Text + "' WITH FORMAT, NAME = 'Newcollege5'  ", c);
                cm.ExecuteNonQuery();
                c.Close();
                MessageBox.Show("پشتیبان گیری با موفقیت انجام شد");


            }

           
            catch
            {
                MessageBox.Show("اشكال در ارتباط با بانك اطلاعاتي");
             
            }
            }
             else
             {
                 MessageBox.Show("مسير پشتيبان گيري مشخص نشده است");
             }

        }

----------


## catgirl

بانکم sql server management studio express هست.

----------


## reza2012

> بانکم sql server management studio express هست.


 كافيه connection string رو تغيير بدي

----------


## zare69

دوستان سلام
من این کد را برای بازیابی اطلاعات در SQL2008 نوشتم ولی خطا میده کسی میتونه کمک کنه؟
try
            {

                //............
                con.Open();

                string query = "USE master RESTORE DATABASE [bookdb] FROM DISK = '" + textBox1.Text.Trim() + "'";



                cmd.CommandText = query;
                cmd.Connection = con;
                cmd.ExecuteNonQuery();
                con.Close();


            }
            catch (Exception ex)
            {

                this.Cursor = Cursors.Default;
                MessageBox.Show("اشکال در ارتباط با بانک اطلاعاتی\n" + ex.Message);
                return;
            }

----------


## catgirl

> دوستان سلام
> من این کد را برای بازیابی اطلاعات در SQL2008 نوشتم ولی خطا میده کسی میتونه کمک کنه؟
> ضمیمه 70508


از کدی که آقای reza2012 بالا گذاشته استفاده کن درست میشه.در ضمن تو آدرسی که بهش میده تا اون جا back up بگیره  به جای یک backslash باید دو تا براش بذاری مثل:c:\\backuo folder\\bb.bak

----------


## zare69

کد که آفای reza2012 نوشتن برای پشتیبان گیری نه بازیابی کسی بلد نیست؟

----------


## bazardeh

برای بازیابی از کد زیر استفاده کن


String s = "School";
 SqlConnection sq = new SqlConnection("server=(local);database=School;inte  grated security=true;");
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "*.bak|*.bak";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
            string query = "USE [master]; RESTORE DATABASE [" + s + "] FROM DISK = N'" +ofd.FileName + " ' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10";
            SqlCommand com = new SqlCommand(query, sq);
            sq.Open();
            com.ExecuteNonQuery();
            sq.Close();
            }//if


school همان نام  پایگاه شماست

----------


## reuonis

سلام و ممنون از کدهاتون
من وقتی که Connection String بانکم به صورت زیر است ارور می دهد که بانک وجود ندارد :
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector  y|\MYDB.mdf;Integrated Security=True;User Instance=True
ولی وقتی آدرس به صورت : 
Data Source=Local;Initial Catalog=MYDB;Integrated Security=True
ارور نمی دهد. مشکل اولی از کجاست، چرا بانک را پیدا نمی کند، برای دستورات Select وغیره این مشکل وجود ندارد.

----------


## Unknownlive

پشتیبان پسوند bak داره برای چی MDF گفتی ؟

----------


## alirezamli

> سلام و ممنون از کدهاتون
> من وقتی که Connection String بانکم به صورت زیر است ارور می دهد که بانک وجود ندارد :
> Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector  y|\MYDB.mdf;Integrated Security=True;User Instance=True
> ولی وقتی آدرس به صورت : 
> Data Source=Local;Initial Catalog=MYDB;Integrated Security=True
> ارور نمی دهد. مشکل اولی از کجاست، چرا بانک را پیدا نمی کند، برای دستورات Select وغیره این مشکل وجود ندارد.


من هم دقیقاً همین مشکل را دارم.لطفاً راهنمایی کنید....

----------


## sara213

سلام
این کد ها به زبان VB.NETبرای بک اپ و ریستوره

----------


## asadegha

سلام
آخر connectionString اینو اضافه کن:
 
DATABASE=bookstore

یعنی میشه:
 
"Data Source=localhost;initial catalog=bookstore;Integrated Security=true;DATABASE=bookstore"

----------

