Sao lưu và phục hồi dữ liệu trong C#

Sao lưu (Backup Full):
// strPath : Đường dẫn thư mục lưu trữ
// strPath="D:\Luu\";
private void DataBase_Backup(string strPath) {
try
{
string strname = "TenCSDL(" + DateTime.Now.Day.ToString() + "_" + DateTime.Now.Month.ToString() + "_" + DateTime.Now.Year.ToString() + "_" + DateTime.Now.Hour.ToString() + "_" + DateTime.Now.Minute.ToString() + ").bak";
string strBackup = " BACKUP DATABASE [TenCSDL] TO DISK = N'" + strPath + strname + "'";
strBackup += " WITH COPY_ONLY, NOFORMAT, NOINIT, NAME = N'TenCSDL-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10";
KetNoi.ThucHienLenhKhongLayKetQua(strBackup);
}
catch { }
}

Phục hồi (Restore): // strCon : chuỗi kết nối
// Ví dụ : strCon = "server=.; Database=Master; uid =sa; pwd = 123456 ";
// strPath: Đường dẫn đến file cần Restore
// Ví dụ : strPath = "D:\Luu\TenCSDL(28_10_2010_8_28).bak)";
private void DataBase_Restore(string strCon,string strPath)
{
try{
SqlConnection sqlcon = new SqlConnection(strcon);
sqlcon.Open();
strPath = strPath.Substring(0, strPath.Length - 2);
string stRestore = "ALTER DATABASE [TenCSDL] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ";
stRestore += " RESTORE DATABASE [TenCSDL] FROM DISK = N'" + strPath + "'";
stRestore += " WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10";
stRestore += " ALTER DATABASE [TenCSDL] SET MULTI_USER ";
SqlCommand cmd = new SqlCommand(stRestore, sqlcon);
cmd.ExecuteNonQuery();
sqlcon.Close();




}
catch { }
}

Nguyễn Tiến Vinh

Post a Comment

Previous Post Next Post