مشکل در ارتباط با دیتابیس بعد از restore کردن دیتابیس
سلام دوستان ممنون از توجهتون
کدهایی که برای backup و restore کردن دیتابیس نوشتم رو میذارم و ConnectionString که باید مشکل از همینا باشه
ConnectionString:
Connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\QuranDB.mdf;Initial Catalog=QuranDB;Integrated Security=True;User Instance=True");
Backup:
public void CreateBackUp(string Path)
{
string Command = @"backup database QuranDB to disk='" + Path + "'";
CMD = new SqlCommand(Command, DAl.Connection);
DAl.Connect();
CMD.ExecuteNonQuery();
DAl.DisConnect();
}
Restore:
public void RestoreBackUp(string Path)
{
SqlConnection.ClearAllPools();
DAl.Connect();
string FirstCommand = "ALTER DATABASE QuranDB SET OFFLINE WITH ROLLBACK IMMEDIATE";
CMD = new SqlCommand(FirstCommand, DAl.Connection);
CMD.ExecuteNonQuery();
string Command = @"restore database QuranDB from disk='" + Path + "'";
CMD = new SqlCommand(Command, DAl.Connection);
CMD.ExecuteNonQuery();
DAl.DisConnect();
}
از دیتابیس بکاپ میگیره , restore میکنه و اطلاعات به درستی برمیگردن اما با بستن برنامه و اجرای دوباره ی ان در ارتباط با دیتابیس ارور میگیره و میگه فایل log همخونی با فایل اصلی نداره !! (بعد از restore و اجرای دباره ی برنامه این اتفاق میافته )
ممنون از کمکتون
نقل قول: مشکل در ارتباط با دیتابیس بعد از restore کردن دیتابیس
دوستان منتظر نظراتتون هستم ، ممنونم از توجهتون
نقل قول: مشکل در ارتباط با دیتابیس بعد از restore کردن دیتابیس
دوستان کسی تا بحال با چنین مشکلی برخورد نکرده :متعجب:
connectionstring و کدهایی که برا Backup , restore نوشتم رو لطفا بررسی کنید ایرادشون کجاست :افسرده: ممنونم از لطفتون
نقل قول: مشکل در ارتباط با دیتابیس بعد از restore کردن دیتابیس
دوست عزیز این کدو امتحات کنید البته ببخشید به C# تبدیلش کنید زیاد تفاوتی ندارد
نقل قول:
rwd.command.CommandText = "ALTER DATABASE ["& Path1 & "\Insurance.mdf] SET SINGLE_USER with ROLLBACK IMMEDIATE"
'rwd.command = New SqlCommand()
rwd.connection.Open()
rwd.command.ExecuteNonQuery()
rwd.connection.Close()
rwd.command.CommandText = "USE master; RESTORE DATABASE ["& Path1 & "\Insurance.mdf]"& " FROM DISK ='"& path & "'"
'rwd.command = New SqlCommand()
rwd.connection.Open()
rwd.command.ExecuteNonQuery()
rwd.connection.Close()
frmwaite.ShowDialog()
frmwaite.MdiParent = Mainform
MessageBox.Show("بازیابی داده ها با موفقیت انجام شد", "پشتیبان گیری", MessageBoxButtons.OK, MessageBoxIcon.Information)
نقل قول: مشکل در ارتباط با دیتابیس بعد از restore کردن دیتابیس
ممنونم از توجهت دوست عزیز
اره فقط باید کوئری هارو جایگزین کنم که باید همون کدی که نوشتم باشه
در مورد connectionstring ی نیگا بهش بندازین بینم درسته و یه سوال : initial catalog که برابر با نام دیتابیس قرار میدیم چه کاریو انجام میده ؟
و path 1 که تو کدها قرار دادین باید مسیر دیتابیس باشه درسته ؟
دیتابیسم SqlExpress هست
بازم ممنون
نقل قول: مشکل در ارتباط با دیتابیس بعد از restore کردن دیتابیس
برای تعیین نام دیتا بیس از initial catalog استفاده میشه
path1 منظور آدرس دیتابیسه
دوست عزیز connection string را هم به این صورت بنویسید
نقل قول:
SqlConnection Connection = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\QuranDB.mdf;Integrated Security=True;User Instance=True;Connection Timeout=60");
نقل قول: مشکل در ارتباط با دیتابیس بعد از restore کردن دیتابیس
الان موقع بکاپ گیری هم بهم ارور میده میگه دیتابیس توسط process دیگه ای استفاده میشه ! باید چیکارش کنم ؟
نقل قول: مشکل در ارتباط با دیتابیس بعد از restore کردن دیتابیس
اینم کد بکاپ اگه مشکل داشت بگو تا خودم برنامشو براتون بزارم
نقل قول:
rwd.command.CommandText = "BACKUP DATABASE ["& Path1 & "\Insurance.mdf] TO DISK='"& path & "'"& " WITH NOFORMAT, NOINIT, SKIP, NOREWIND, NOUNLOAD, STATS = 10"
rwd.connection.Open()
rwd.command.ExecuteNonQuery()
rwd.connection.Close()
frmwaite.ShowDialog()
frmwaite.MdiParent = Mainform
MessageBox.Show("پشتیبان گیری با موفقیت انجام شد", "پشتیبان گیری", MessageBoxButtons.OK, MessageBoxIcon.Information)
نقل قول: مشکل در ارتباط با دیتابیس بعد از restore کردن دیتابیس
ممنونم دوست عزیز لطف بزرگی کردی مشکل حل شد :بوس: :لبخند:
این کد رو نوشتم
public void RestoreBackUp(string Path)
{
SqlConnection.ClearAllPools();
DAl.Connect();
string FirstCommand = @"USE master;ALTER DATABASE ["+Application.StartupPath+"\\QuranDB.mdf] SET OFFLINE WITH ROLLBACK IMMEDIATE";
CMD = new SqlCommand(FirstCommand, DAl.Connection);
CMD.ExecuteNonQuery();
string Command = @"restore database ["+Application.StartupPath+@"\QuranDB.mdf] from disk='" + Path + "'";
CMD = new SqlCommand(Command, DAl.Connection);
CMD.ExecuteNonQuery();
DAl.DisConnect();
}
بازم ممنون از لطفت