usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingHanSoft.BusinessLogic;usingInsus.NET;usingCAF.DBUtility;usingSystem.IO;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Collections;usingHanSoft.SQLServerDAL;public partial classinformation_backDB : System.Web.UI.Page
{protected InsusDateTimeUtility objIdtu = newInsusDateTimeUtility();
InsusIOUtility objIotu= newInsusIOUtility();protected void Page_Load(objectsender, EventArgs e)
{if (!IsPostBack)
{
Data_Binding();
}
}private voidData_Binding()
{
DirectoryInfo dInfo= new DirectoryInfo(Server.MapPath("~/backSql"));this.gv_DataBasefile.DataSource =dInfo.GetFiles();this.gv_DataBasefile.DataBind();
}///
///备份数据库///
///
///
protected void Button1_Click(objectsender, EventArgs e)
{try{
BACKUP();
Label1.Text= "数据库备份成功!";
Data_Binding();
}catch(Exception ex)
{
Response.Write(ex.Message);
}
}///
///备份数据库方法///
private voidBACKUP()
{string DBname = "1220";string backUpDBname = DBname + "_" + objIdtu.GetDateTimeMillisecond();//这一步是数据库名+年月日+随机数
objIotu.MakeDirectory(Server.MapPath("~/backSql")); //这一步是在根目录下面生成一个文件夹,名叫 backsql
string str_sql = "BACKUP DATABASE [" + DBname + "] TO DISK = '" + Server.MapPath("~/").ToString() + "backSql\\" + backUpDBname + ".bak'";int i =SqlHelper.ExecuteNonQuery(str_sql);
}///
///还原数据库///
///
///
protected void gv_DataBasefile_RowCommand(objectsender, GridViewCommandEventArgs e)
{
SelectObjectIndexBLL SoIndexBLL= newSelectObjectIndexBLL();
SqlConnection connection= new SqlConnection("Data Source=192.168.1.98;User ID=sa;Password=123");string path_name =e.CommandArgument.ToString();string[] array ={ };string[] array1 ={ };
array= path_name.Split(',');string dbFileName = array[1].ToString();
array1= array[0].ToString().Split('_');string dbName = array1[0].ToString();
SqlCommand command= new SqlCommand("use master;restore database @name from disk=@path WITH REPLACE;", connection);string path = dbFileName + "//" + array[0]; //全路径
command.Parameters.AddWithValue("@name", dbName); //dbName还原目标数据库名
command.Parameters.AddWithValue("@path", path);
DataTable dt_spid= SoIndexBLL.GetDataList("select spid from master..sysprocesses where dbid=db_id('1220')").Tables[0];if (dt_spid.Rows.Count > 0)
{for (int i = 0; i < dt_spid.Rows.Count; i++)
{string sql = "kill" + Convert.ToString(dt_spid.Rows[i]["spid"]) + " ";//SqlDataAdapter sqldap = new SqlDataAdapter(sql, connection);//--------------1
SqlCommand commd= new SqlCommand(sql, connection);//----------2
connection.Open();
commd.ExecuteReader();//-------------2
connection.Close();
} Label2.Text= "数据库恢复成功!";
}
connection.Open();
command.ExecuteNonQuery();//-----------------1
connection.Close();
}
}