PDA

View Full Version : بک آپ و ریستور در entity



hamix666
یک شنبه 21 شهریور 1395, 01:50 صبح
با سلام میشه یه توضیح در مورد نحوه بک آپ و ریستور کردن رو در entity fm توضیح بدین ؟

Mahmoud.Afrad
دوشنبه 22 شهریور 1395, 01:31 صبح
http://barnamenevis.org/showthread.php?403707-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%A8%DA%A9%D8%A7%D9%BE-%D8%A8%D8%A7-Entity-Framework

hamix666
دوشنبه 22 شهریور 1395, 16:29 عصر
http://barnamenevis.org/showthread.php?403707-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%A8%DA%A9%D8%A7%D9%BE-%D8%A8%D8%A7-Entity-Framework
میشه یکم توضیح بدین متوجه نشدم هم بک آپ هم ریستور

omid nasri
دوشنبه 22 شهریور 1395, 18:36 عصر
یک نمونه برای جواب سوال شما:

http://stackoverflow.com/questions/13946541/restore-and-backup-with-entity-framework

hamix666
دوشنبه 22 شهریور 1395, 19:34 عصر
میشه یکم توضیح بدین متوجه نشدم هم بک آپ هم ریستور
برای بک آپ از این کد استفاده کردم

private void button1_Click(object sender, EventArgs e)
{

#region Select Name
SaveFileDialog saveFileDialog1=new SaveFileDialog();
string strFileName = string.Empty;
saveFileDialog1.DefaultExt = "BAK";
saveFileDialog1.FileName = "BackupFile";
saveFileDialog1.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files (*.*) |*.*";
saveFileDialog1.FilterIndex = 1;
saveFileDialog1.OverwritePrompt = true;
saveFileDialog1.Title = "Backup SQL File";


if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
strFileName = saveFileDialog1.FileName;
Backup(strFileName);
}


#endregion
}
private void Backup(string strFileName)
{
#region Store File Bak


SqlCommand oCommand = null;
SqlConnection oConnection = null;
try
{
string ConectionString =
@"Data Source=.;Initial Catalog=Db_bashgah;Integrated Security=True";
string Command = @"backup database [" + Application.StartupPath + "\\Db_bashgah.mdf] to disk ='" +
strFileName + "' with init,stats=10";


this.Cursor = Cursors.WaitCursor;


oConnection = new SqlConnection(ConectionString);
if (oConnection.State != ConnectionState.Open)
oConnection.Open();


oCommand = new SqlCommand(Command, oConnection);
oCommand.ExecuteNonQuery();


this.Cursor = Cursors.Default;
MessageBox.Show("تهیه نسخه پشتیبان انجام شد .");
}
catch (Exception ex)
{
MessageBox.Show("Error :" + ex.Message);
}
finally
{
oConnection.Close();
oCommand.Parameters.Clear();
oCommand.Dispose();
}


#endregion
}


این ارور رو داد
142526

omid nasri
سه شنبه 23 شهریور 1395, 00:20 صبح
رشته اتصال به بانک اطلاعاتی رو مجدد برسی کنید.

hamix666
سه شنبه 23 شهریور 1395, 00:43 صبح
رشته اتصال به بانک اطلاعاتی رو مجدد برسی کنید.
منظورتون ConectionString هست ؟
درسته

Mahmoud.Afrad
سه شنبه 23 شهریور 1395, 01:32 صبح
اگر دیتابیس اتچ هست این کانکشن استرینگ نمیتونه اتصال رو ایجاد کنه.

نام دیتابیس را از کانکشن استرینگ بدست بیارید تا دچار اینگونه خطاها نشوید
string ConectionString = @"Data Source=.;Initial Catalog=Db_bashgah;Integrated Security=True";
oConnection = new SqlConnection(ConectionString);
if (oConnection.State != ConnectionState.Open)
oConnection.Open();

string dbname = oConnection.Database;
string Command = @"backup database [" + dbname + "] to disk =N'" + strFileName + "' with init,stats=10";

hamix666
سه شنبه 23 شهریور 1395, 09:26 صبح
اگر دیتابیس اتچ هست این کانکشن استرینگ نمیتونه اتصال رو ایجاد کنه.

نام دیتابیس را از کانکشن استرینگ بدست بیارید تا دچار اینگونه خطاها نشوید
string ConectionString = @"Data Source=.;Initial Catalog=Db_bashgah;Integrated Security=True";
oConnection = new SqlConnection(ConectionString);
if (oConnection.State != ConnectionState.Open)
oConnection.Open();

string dbname = oConnection.Database;
string Command = @"backup database [" + dbname + "] to disk =N'" + strFileName + "' with init,stats=10";
میشه کدش رو برای من بنویسید چون هرکاری کردم نشد

hamix666
سه شنبه 23 شهریور 1395, 09:46 صبح
دیتا بیس برنامه توی یه مسیر دیگه بجز برنامه هست و به بانک هم اتچ شده و از کامکشن استریگ سی شارپ هم کهآدرس رو میگیرم همینه در ضمن بانک من entity به برنامهه وصلکردم

sds1920
چهارشنبه 24 شهریور 1395, 16:51 عصر
من از کدهای زیر استفاده میکنم.ایت دو تا متد رو تو کانتکست اضافه کن و استفاده کن.
فقط یک مشکل در مورد ریستور کردن ممکنه پیش بیاد که دلیلش اینه که شما دیتابیستون رو Rename کردین.
برای رفع این مشکل به صورت دستی یه بک آپ از دیتابیس بگیرین. بعد دیتابیس رو حذف کند و بک آپی که گرفتین رو با نام دیتابیس که حذف کردین برگردونید.
دیگه مشکل حل میشه.
موفق باشید


public void GetBackup(string backupFilePath)
{
var conStr = this.Database.Connection.ConnectionString;
conStr = conStr.Replace(this.Database.Connection.Database, "master");


var con = new System.Data.SqlClient.SqlConnection(conStr);
try
{
con.Open();
var cmd = new System.Data.SqlClient.SqlCommand(string.Format(@"BACKUP DATABASE {0} TO DISK = '{1}' WITH COMPRESSION ", this.Database.Connection.Database, backupFilePath), con);
cmd.ExecuteNonQuery();
}
catch
{
throw;
}
finally
{
con.Close();
}
}


public void RestoreBackup(string backupFilePath)
{
var conStr = this.Database.Connection.ConnectionString;
conStr = conStr.Replace(this.Database.Connection.Database, "master");


var con = new System.Data.SqlClient.SqlConnection(conStr);
try
{
string dbName = this.Database.Connection.Database;
con.Open();
var cmd = new System.Data.SqlClient.SqlCommand(string.Format(@"
ALTER DATABASE {0} SET OFFLINE WITH ROLLBACK IMMEDIATE;
ALTER DATABASE {0} SET ONLINE WITH ROLLBACK IMMEDIATE;
RESTORE DATABASE [{0}] FROM DISK = N'{1}' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10", dbName, backupFilePath), con);


cmd.ExecuteNonQuery();


}
catch
{
throw;
}
finally
{
con.Close();
}
}

abdullah20
چهارشنبه 24 شهریور 1395, 18:07 عصر
این ارور رو داد
142526

در حین نصب وضعیت Log on را چی قرار دادید؟



Open [Control Panel] -> [Administrative Tools] -> [Services] -> [SQL Server (MSSQLSERVER)] -> [Log on]
Select the [This Account] option
Enter the Login Credentials
Restart the [SQL Server (MSSQLSERVER)] service

hamix666
پنج شنبه 01 مهر 1395, 03:40 صبح
از طریق ado بک آپ گرفتم حالا توی ریستور کردن مشکل دارم اینم کدمه

OpenFileDialog openFileDialog1 = new OpenFileDialog();
string strFileName = string.Empty;
openFileDialog1.DefaultExt = "BAK";
openFileDialog1.FileName = "BackupFile";
openFileDialog1.Filter = @"SQL Backup files (*.BAK) |*.BAK|All files (*.*) |*.*";
openFileDialog1.FilterIndex = 1;
//openFileDialog1.OverwritePrompt = true;
openFileDialog1.Title = "Backup SQL File";


if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
strFileName = openFileDialog1.FileName;
string qry1;
MessageBox.Show(" در حین عملیات برگرداندن نسخه پشتیبان به چیزی دست نزنید", "هشدار", MessageBoxButtons.OK,
MessageBoxIcon.Warning);
qry1 = " ALTER DATABASE [Db_bashgah] SET SINGLE_USER WITH ROLLBACK IMMEDIATE RESTORE DATABASE[Db_bashgah] FROM DISK ='"+strFileName+"' WITH FILE = 2, NOUNLOAD, REPLACE, STATS = 5 ALTER DATABASE[Db_bashgah] SET MULTI_USER";
dl.ExcuteNonQuery(qry1);
MessageBox.Show("عملیات برگرداندن نسخه پشتیبان با موفقیت انجام شد", "پیغام", MessageBoxButtons.OK,
MessageBoxIcon.Information);


}