مشکل در بک آپ گیری

tina.programer

عضو جدید
من در بک آپ گیری اطلاعات یه مشکلی دارم یه دکمه گذاشتم رو فرمم و این کد رو نوشتم :

کد:
SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.AddExtension = true;
            saveFileDialog.CheckFileExists = false;
            saveFileDialog.CheckPathExists = true;
            saveFileDialog.OverwritePrompt = true;
            saveFileDialog.FileName = "Backup";
            saveFileDialog.Filter = "Backup File (*.Bak)|*.Bak";
            saveFileDialog.DefaultExt = "Bak";
            saveFileDialog.RestoreDirectory = true;
            saveFileDialog.InitialDirectory = "C:\\";
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                System.Data.SqlClient.SqlConnection sqlConnection = new System.Data.SqlClient.SqlConnection();
                sqlConnection.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\mydb.MDF;integrated security=true;User Instance=True";
                sqlConnection.Open();
                System.Data.SqlClient.SqlCommand sqlCommand = new System.Data.SqlClient.SqlCommand();
                sqlCommand.Connection = sqlConnection;
                sqlCommand.CommandText = "BACKUP DATABASE mydb TO DISK = @Destination";
                sqlCommand.Parameters.Add("@Destination", SqlDbType.VarChar);
                sqlCommand.Parameters["@Destination"].Value = saveFileDialog.FileName;
                sqlCommand.ExecuteNonQuery();
              //MessageBox.Show("پشتیبان گیری از بانک اطلاعاتی با موفقیت انجام گردید.","Backup");
                sqlConnection.Close();
            }

اما این خط رو خطا میگیره و بک آپ نمیگیره :

کد:
sqlCommand.ExecuteNonQuery();
 

HH2BN1990

عضو جدید
این به خاطر اینه که شما دارین از Local DataBase استفاده می کنین و بانکتون رو به Sql اکسپرس Attach نکردین !!!!!
(ارورش هم اینو میگه که دیتابیس وجود ندارد Database 'mydb' does not exist)
یعنی اینکه وقتی بانکتون Attach شده باشه می تونین از دستورات Sql واسه بک آپ گیری استفاده کنین ! در غیر اینصورت می تونین با Copy و Past کردن دیتابیس بک آپ بگیرین !
 
آخرین ویرایش:

HH2BN1990

عضو جدید
من همین کد شما رو با دیتابیس Attach شده تست کردم کار کرد !
فقط ConnectionString رو تغییر دادم


کد:
sqlConnection.ConnectionString = @"Data Source=.\sqlexpress;Initial Catalog=mydb;Integrated Security=True";

و 2 تا Single کوتیشن هم به این قسمت اضافی کردم ! (@Destination چون آدرس هست باید داخل Single کوتیشن باشه!)


کد:
sqlCommand.CommandText = "BACKUP DATABASE mydb TO DISK = '@Destination'";
 

Similar threads

بالا