با سلام به همگی دوستان
من هر چی کد در مورد پشتیبانگیری و بازگردانی بلد بودم نوشتم من در نسخه اصلی sql مشکلی ندارم ولی زمانی که بیس برنامه را sqlexpressتغییر دادم هیچ وقت نتونستم به طور کامل پشتیبانگیری و بازگردانی کنم من پروژه ای که دارم مینویسم رو یک ماه پیش با نسخه اصلی SQLنوشتم ولی به دلیل ناسازگاری نسخه نصبی با ویندوز مجبور شدم دوباره بنشینم و با SQLEXPRESSکار کنم این اولین پروژه ای بود که با EXPRESS نوشتم از همان منوهای اول با EXPRESSمشکل داشتم به همین خاطر گفتم که کد پشتیبانگیری و بازگردانی که کاملا تسلط دارم را بنویسم ولی هنوز که هنوزه نتوانستم این کد را به سرانجام برسانم لذا از شما دوستان تمنا دارم در صورتی که اطلاعاتی در این زمینه داشته باشید که یاریم کند ممنون میشم که در اختیارم قرار بدید تا هرچه زودتر به سراغ منوهای دیگر بروم
کدی که من نوشتم به طور کامل بازگردانی درر حالت ساده با پیغام موفقیت نشون میده ولی هیچ کاری یا اطلاعاتی رو برنمیگردونه
بعد از یک بازگرادنی به هنگام کامپایل برنامه دو پیغام میده پس ابتدا کد بازگردانی به شکل زیر است
try
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.AddExtension = true;
openFileDialog.CheckFileExists = false;
openFileDialog.CheckPathExists = true;
openFileDialog.Filter = "(*.bak) فایل پشتیبانی |*.bak";
openFileDialog.Title = "بازیابی فایل پشتیانی";
openFileDialog.DefaultExt = "Bak";
openFileDialog.RestoreDirectory = true;
openFileDialog.InitialDirectory = System.Windows.Forms.Application.StartupPath;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
this.Refresh();
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;
cmd.Connection.Close();
string query = "ALTER DATABASE [" + dbname + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;RESTORE DATABASE [" + dbname + "] FROM DISK = '" + openFileDialog.FileName + "';ALTER DATABASE [" + dbname + "] SET MULTI_USER ;";
cmd.Connection = new SqlConnection("Data Source=.\\sqlexpress;Integrated Security=True;Connect Timeout=0;User Instance=True");
cmd.Connection.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
cmd.Connection.Close();
progressBar1.PerformStep();
progressBar1.Value = 100;
label1.Visible = true;
label1.Text = "%" + progressBar1.Value.ToString();
MessageBox.Show("نسخه پشتيبان به طور كامل بازيابي شد ", "پيام");
// FarsiMessegeBox.Show("برنامه باید دوباره راه اندازی شود ", "هشدار", FMessegeBoxButtons.Ok, FMessegeBoxIcons.Information);
Application.Restart();
progressBar1.Value = 0;
}
catch (Exception ex)
{
textBox1.Text = ex.Message;
/* if (!showmeesage)
MessageBox.Show(ex.Message);
else*/
MessageBox.Show("اشکال در بازگردانی پایگاه داده / خطا 106", "خطا");
}
}

}
catch
{

}
پیغام خطا 1
Error 2 Unable to copy file "C:\Documents and Settings\esmaeel\Desktop\gireh\setup\back jadid\2\2\Database1.mdf" to "bin\Debug\Database1.mdf". The process cannot access the file 'bin\Debug\Database1.mdf' because it is being used by another process.
پیغام خطای2
Error 3 Unable to copy file "C:\Documents and Settings\esmaeel\Desktop\gireh\setup\back jadid\2\2\Database1_log.ldf" to "bin\Debug\Database1_log.ldf". The process cannot access the file 'bin\Debug\Database1_log.ldf' because it is being used by another process.