📄 datarestore.aspx.cs
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
public partial class manage_DataRecover : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BindGridbak();
}
protected void GridBak_Command(Object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Restore")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridBak.Rows[index];
string serverIp = System.Configuration.ConfigurationManager.AppSettings["ServerIP"].ToString();
string loginName = System.Configuration.ConfigurationManager.AppSettings["LoginName"].ToString();
string loginPass = System.Configuration.ConfigurationManager.AppSettings["LoginPass"].ToString();
string BackPath = Server.MapPath("../DataBak/" + row.Cells[0].Text);
string dbname = System.Configuration.ConfigurationManager.AppSettings["DBName"].ToString();
SQLDbRestore(serverIp,loginName,loginPass,dbname,BackPath);
Page.RegisterClientScriptBlock("clientScript","<script>alert('[操作成功!]');</script>");
}
if (e.CommandName == "DeleteBak")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridBak.Rows[index];
File.Delete(Server.MapPath("../DataBak/" + row.Cells[0].Text));
BindGridbak();
}
}
/// <summary>
/// 数据库还原
/// </summary>
/// <param name="ServerIP"></param>
/// <param name="LoginName"></param>
/// <param name="LoginPass"></param>
/// <param name="DBName"></param>
/// <param name="BackPath"></param>
void SQLDbRestore(string ServerIP, string LoginName, string LoginPass, string DBName, string BackPath)
{
string path = BackPath;
string server =ServerIP;
string name = LoginName;
string pwd = LoginPass;
string database = DBName;
string restoreStr = "Alter DATABASE " + DBName + " set single_user with rollback immediate use master ; ";
restoreStr += " RESTORE DATABASE "+DBName+" from disk = '"+BackPath+"';";
restoreStr += " Alter DATABASE " + DBName + " set multi_user";
DataOp.updateData(restoreStr);
}
void BindGridbak()
{
GridBak.DataSource = fileList();
GridBak.DataBind();
}
/// <summary>
/// 读取所有备份数据库列表
/// </summary>
/// <returns></returns>
DataTable fileList()
{
DataTable table = new DataTable();
DataColumn dc = new DataColumn("fileName",Type.GetType("System.String"));
table.Columns.Add(dc);
DataRow dr;
System.IO.FileInfo fileInfo;
System.IO.DirectoryInfo dir;
System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(Server.MapPath("../Databak"));
foreach (System.IO.FileSystemInfo fsi in dirInfo.GetFileSystemInfos())
{
string FileName = "";
string FileExt = "";
if (fsi is FileInfo)
{
fileInfo = (FileInfo)fsi;
FileName = fileInfo.Name;
FileExt = fileInfo.Extension;
dr = table.NewRow();
dr["fileName"] = FileName;
table.Rows.Add(dr);
}
}
return table;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -