popo69
شنبه 06 مهر 1392, 16:26 عصر
برای بازگردانی نسخه پشتیبان دیتابیس SQL از طریق کدنویسی ( به زبان سی شارپ ) :
public Boolean BackUpRestoreDatabase(string DatabaseFullPath, string backUpPath, System.Windows.Forms.ProgressBar progress1)
{
progress1.Value = 0;
Boolean Doit = false;
using (SqlConnection con = new SqlConnection(ConnectionString))
{
try
{
con.Open();
string UseMaster = "USE master";
SqlCommand UseMasterCommand = new SqlCommand(UseMaster, con);
UseMasterCommand.ExecuteNonQuery();
progress1.Value += 25;
string Alter1 = @"ALTER DATABASE [" + DatabaseFullPath + "] SET Single_User WITH Rollback Immediate";
SqlCommand Alter1Cmd = new SqlCommand(Alter1, con);
Alter1Cmd.ExecuteNonQuery();
progress1.Value += 25;
//string Restore = @"BACKUP DATABASE [" + DatabaseFullPath + "] TO DISK = N'" + backUpPath + @"' WITH NOFORMAT, NOINIT, NAME = N'" + DatabaseFullPath + "-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10";
//SqlCommand RestoreCmd = new SqlCommand(Restore, con);
//RestoreCmd.ExecuteNonQuery();
string Restore = @"RESTORE DATABASE [" + DatabaseFullPath + "] FROM DISK = N'" + backUpPath + @"' WITH REPLACE";
SqlCommand RestoreCmd = new SqlCommand(Restore, con);
RestoreCmd.ExecuteNonQuery();
progress1.Value += 25;
string Alter2 = @"ALTER DATABASE [" + DatabaseFullPath + "] SET Multi_User";
SqlCommand Alter2Cmd = new SqlCommand(Alter2, con);
Alter2Cmd.ExecuteNonQuery();
Doit = true;
progress1.Value += 25;
//labelReport.Text = "Successful";
}
catch (Exception ex)
{
Doit = false;
string Alter2 = @"ALTER DATABASE [" + DatabaseFullPath + "] SET Multi_User";
SqlCommand Alter2Cmd = new SqlCommand(Alter2, con);
Alter2Cmd.ExecuteNonQuery();
}
}
return Doit;
}
سوالی داشتید در خدمتم
public Boolean BackUpRestoreDatabase(string DatabaseFullPath, string backUpPath, System.Windows.Forms.ProgressBar progress1)
{
progress1.Value = 0;
Boolean Doit = false;
using (SqlConnection con = new SqlConnection(ConnectionString))
{
try
{
con.Open();
string UseMaster = "USE master";
SqlCommand UseMasterCommand = new SqlCommand(UseMaster, con);
UseMasterCommand.ExecuteNonQuery();
progress1.Value += 25;
string Alter1 = @"ALTER DATABASE [" + DatabaseFullPath + "] SET Single_User WITH Rollback Immediate";
SqlCommand Alter1Cmd = new SqlCommand(Alter1, con);
Alter1Cmd.ExecuteNonQuery();
progress1.Value += 25;
//string Restore = @"BACKUP DATABASE [" + DatabaseFullPath + "] TO DISK = N'" + backUpPath + @"' WITH NOFORMAT, NOINIT, NAME = N'" + DatabaseFullPath + "-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10";
//SqlCommand RestoreCmd = new SqlCommand(Restore, con);
//RestoreCmd.ExecuteNonQuery();
string Restore = @"RESTORE DATABASE [" + DatabaseFullPath + "] FROM DISK = N'" + backUpPath + @"' WITH REPLACE";
SqlCommand RestoreCmd = new SqlCommand(Restore, con);
RestoreCmd.ExecuteNonQuery();
progress1.Value += 25;
string Alter2 = @"ALTER DATABASE [" + DatabaseFullPath + "] SET Multi_User";
SqlCommand Alter2Cmd = new SqlCommand(Alter2, con);
Alter2Cmd.ExecuteNonQuery();
Doit = true;
progress1.Value += 25;
//labelReport.Text = "Successful";
}
catch (Exception ex)
{
Doit = false;
string Alter2 = @"ALTER DATABASE [" + DatabaseFullPath + "] SET Multi_User";
SqlCommand Alter2Cmd = new SqlCommand(Alter2, con);
Alter2Cmd.ExecuteNonQuery();
}
}
return Doit;
}
سوالی داشتید در خدمتم