anis71
چهارشنبه 13 بهمن 1389, 14:35 عصر
من یک برنامه دارم که توش از اطلاعاتم بک آپ میگیرم اما می خوام وقتی اطلاعات رو restore می کنم به اطلاعات اضافه بشه.برای اینکار دوستان پیشنهاد دادن که خودم به صورت دستی این کار رو بکنم.
اولین راهی که به ذهنم رسید این بودکه فایل بک آپ رو روی یه بانک دیگه restore کنم تا بتونم اطلاعات اون بانک جدید رو با بانک فعلی مقایسه کنم و اطلاعات جدید رو اضافه کنم که اصلا اجازه این کار رو نمیده که بک آپ یک فایل رو روی یک بانک دیگه restore کنم و با ارور مواجه شدم.
دومین راه این بود که از بانک کپی بگیرم و اطلاعات اون بانک کپی شده رو با بانک فعلی مقایسه کنم و اطلاعات جدید رو اضافه کنم که در کپی کردن با مشکل مواجه شدم من برای کپی کردن از این کد استفاده کردم:
SqlConnection sqlcon = new SqlConnection("Data Source=.\\SQLEXPRESS;initial catalog=master;Integrated security=true");
SqlDataAdapter sqlda = new SqlDataAdapter();
sqlda.SelectCommand = new SqlCommand();
sqlda.SelectCommand.Connection = sqlcon;
DataTable s1 = new DataTable();
sqlda.SelectCommand.CommandText = "select * from sys.databases where name='" + AppDomain.CurrentDomain.BaseDirectory + "db\\Database1.mdf'"; sqlcon.Open();
sqlda.SelectCommand.ExecuteNonQuery();
sqlda.Fill(s1);
if (s1.Rows.Count > 0)
{
sqlda.SelectCommand.CommandText = "sys.sp_detach_db '" + AppDomain.CurrentDomain.BaseDirectory + "db\\Database1.mdf'"; sqlda.SelectCommand.ExecuteNonQuery();
}
sqlcon.Close();
SqlConnection.ClearPool(sqlcon);
sqlcon.Dispose();
string root = (Directory.CreateDirectory(folderBrowserDialog1.Se lectedPath + "BackUp" + DatePath()).FullName);
File.Copy(Application.StartupPath + @"\Databases\Database.mdf", root + "\\Database.mdf", true);
File.Copy(Application.StartupPath + @"\Databases\Database_log.ldf", root + "\\Database_log.ldf", true);
اما بازم ارور داره که این بانک در حال استفاده است.دوستان اگه می تونید کمک کنید
تشکر
اولین راهی که به ذهنم رسید این بودکه فایل بک آپ رو روی یه بانک دیگه restore کنم تا بتونم اطلاعات اون بانک جدید رو با بانک فعلی مقایسه کنم و اطلاعات جدید رو اضافه کنم که اصلا اجازه این کار رو نمیده که بک آپ یک فایل رو روی یک بانک دیگه restore کنم و با ارور مواجه شدم.
دومین راه این بود که از بانک کپی بگیرم و اطلاعات اون بانک کپی شده رو با بانک فعلی مقایسه کنم و اطلاعات جدید رو اضافه کنم که در کپی کردن با مشکل مواجه شدم من برای کپی کردن از این کد استفاده کردم:
SqlConnection sqlcon = new SqlConnection("Data Source=.\\SQLEXPRESS;initial catalog=master;Integrated security=true");
SqlDataAdapter sqlda = new SqlDataAdapter();
sqlda.SelectCommand = new SqlCommand();
sqlda.SelectCommand.Connection = sqlcon;
DataTable s1 = new DataTable();
sqlda.SelectCommand.CommandText = "select * from sys.databases where name='" + AppDomain.CurrentDomain.BaseDirectory + "db\\Database1.mdf'"; sqlcon.Open();
sqlda.SelectCommand.ExecuteNonQuery();
sqlda.Fill(s1);
if (s1.Rows.Count > 0)
{
sqlda.SelectCommand.CommandText = "sys.sp_detach_db '" + AppDomain.CurrentDomain.BaseDirectory + "db\\Database1.mdf'"; sqlda.SelectCommand.ExecuteNonQuery();
}
sqlcon.Close();
SqlConnection.ClearPool(sqlcon);
sqlcon.Dispose();
string root = (Directory.CreateDirectory(folderBrowserDialog1.Se lectedPath + "BackUp" + DatePath()).FullName);
File.Copy(Application.StartupPath + @"\Databases\Database.mdf", root + "\\Database.mdf", true);
File.Copy(Application.StartupPath + @"\Databases\Database_log.ldf", root + "\\Database_log.ldf", true);
اما بازم ارور داره که این بانک در حال استفاده است.دوستان اگه می تونید کمک کنید
تشکر