PDA

View Full Version : سوال: خطا در هنگام گرفتن پشتیبان از SQL



Smoke_1110
شنبه 10 اردیبهشت 1390, 18:05 عصر
سلام
من هر وقت می خوام از بانکم پشتیبان بگیرم این ارور رو میده به نظر شما ایراد از کجاست ؟ اینم اون کدی هست که براش نوشتم
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
string command = @"BACKUP DATABASE [" + Application.StartupPath + "\\Mashmolins.mdf] TO DISK = N'" + saveFileDialog1.FileName + "' WITH FORMAT, INIT, NAME = N'accounting-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10";
this.Cursor = Cursors.WaitCursor;
SqlConnection objconnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Mashmolin.mdf;Integrated Security=True;User Instance=True");
SqlCommand oCommand = null;
if (objconnection.State != ConnectionState.Open)
objconnection.Open();
oCommand = new SqlCommand(command, objconnection);
oCommand.ExecuteNonQuery();
this.Cursor = Cursors.Default;
objconnection.Close();
MessageBox.Show("فایل پشتیبان ذخیره شد.", "پیغام");
oCommand.Dispose();
}


این هم اون ارور هست:
An attempt to attach an auto-named database for file F:\Computer\Computer\DataBase\Mashmolin\VER 5\Mashmolin\Mashmolin\bin\Debug\Mashmolin.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

ma.rad
شنبه 10 اردیبهشت 1390, 22:47 عصر
اینو استفاده کن ببین مشکلت حل میشه:
SqlCommand cmd = new SqlCommand();
cmd.Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\db.mdf;Integrated Security=True;Connect Timeout=10;User Instance=True");
cmd.Connection.Open();
string dbname = cmd.Connection.Database;//گرفتن نام دیتابیس
cmd.Connection.Close();
SqlConnection.ClearAllPools();
string query = "BACKUP DATABASE [" + dbname + "] TO DISK ='" + saveFileDialog.FileName + "'";
cmd.Connection = new SqlConnection(@"Data Source=.\sqlexpress;Integrated Security=True;Connect Timeout=30;User Instance=True");
cmd.Connection.Open();
cmd.CommandText = query;
cmd.ExecuteNonQuery();
cmd.Connection.Close();
this.Refresh();
MessageBox.Show("نسخه پشتيبان به طور كامل ايجاد شد ", "پيام", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

Smoke_1110
یک شنبه 11 اردیبهشت 1390, 14:57 عصر
این هم همون خطا رو میگیره

aliasghar2
یک شنبه 11 اردیبهشت 1390, 16:59 عصر
سلام دوست عزیز
توی ارورت نوشته که این فایل در حال استفاده است و برنامه نمی تونه اونو باز کنه فکر کنم به خاطر conection string که به صورت attach file نوشته شده در صورتی که فایل به بانک متصل هست و attach دروباره اون باعث این ارور شده conection string رو تغییر بده ودوباره برنامتو تست کنه

Smoke_1110
یک شنبه 11 اردیبهشت 1390, 17:30 عصر
چه جوری کانکشن رو تغییر بدم آخه من از ویزارد استفاده کردم

farazjalili
یک شنبه 13 آذر 1390, 18:06 عصر
به اين لينك يك سري بزن
tp://msdn.microsoft.com/en-us/library/ms191304.aspx