SQL数据库备份
数据库备份到服务器的一个文件夹下,同时再写入一个access的小库内所备份的数据库名称和备份日期,以被还原时使用。
下载到本地是为了不时之需,不过想从本地上传到服务器上还原数据库是不现实的,有点大。手动建databak文件夹
protected void Page_Load(object sender, EventArgs e)
{
HyperLink1.Visible = false;
}
protected void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
//备份数据库的新名字 用时间
string newname = "backup" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + ".bak";
//备份数据库在服务器上的路径+名字
string nepath = Server.MapPath("../databak/") + newname;
//string sql = "BACKUP DATABASE [00xs_0904] to DISK ='" + nepath + "'";
//备份数据库的SQL,后面的代码是完整备份+覆盖(同时按多次则覆盖)00xs_0904 是数据库的名字
string sql = "BACKUP DATABASE [00xs_0904] TO DISK ='" + nepath + "' WITH NOFORMAT, INIT, NAME = N'00xs_0904-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10";
try
{
//执行备份SQL语句
obj.RunSql(sql);
//***********备份的同时,将基础信息存入access数据库,以免还原数据库时,数据覆盖
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += "Data Source=";
strConnection += Server.MapPath("sjbf.mdb");
string str_Sql = "insert into xs_bf (sjmc,bfrq) values('" + newname + "','" + DateTime.Now.ToString() + "')";
OleDbConnection objConnection = new OleDbConnection(strConnection);
objConnection.Open();
OleDbCommand oledbc = new OleDbCommand(str_Sql, objConnection);
oledbc.ExecuteNonQuery();
objConnection.Close();
//*************
HyperLink1.Text = "已成功备份到服务器,请点击或另存为下载到本地!" + newname;
HyperLink1.NavigateUrl = "http://" + Request.Url.Host + Request.ApplicationPath + "/databak/" + newname;
HyperLink1.Visible = true;
}
catch (Exception ex)
{
lblmessage.Text = ex.Message;
lblmessage.Visible = true;
}
}
{
HyperLink1.Visible = false;
}
protected void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
//备份数据库的新名字 用时间
string newname = "backup" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + ".bak";
//备份数据库在服务器上的路径+名字
string nepath = Server.MapPath("../databak/") + newname;
//string sql = "BACKUP DATABASE [00xs_0904] to DISK ='" + nepath + "'";
//备份数据库的SQL,后面的代码是完整备份+覆盖(同时按多次则覆盖)00xs_0904 是数据库的名字
string sql = "BACKUP DATABASE [00xs_0904] TO DISK ='" + nepath + "' WITH NOFORMAT, INIT, NAME = N'00xs_0904-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10";
try
{
//执行备份SQL语句
obj.RunSql(sql);
//***********备份的同时,将基础信息存入access数据库,以免还原数据库时,数据覆盖
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += "Data Source=";
strConnection += Server.MapPath("sjbf.mdb");
string str_Sql = "insert into xs_bf (sjmc,bfrq) values('" + newname + "','" + DateTime.Now.ToString() + "')";
OleDbConnection objConnection = new OleDbConnection(strConnection);
objConnection.Open();
OleDbCommand oledbc = new OleDbCommand(str_Sql, objConnection);
oledbc.ExecuteNonQuery();
objConnection.Close();
//*************
HyperLink1.Text = "已成功备份到服务器,请点击或另存为下载到本地!" + newname;
HyperLink1.NavigateUrl = "http://" + Request.Url.Host + Request.ApplicationPath + "/databak/" + newname;
HyperLink1.Visible = true;
}
catch (Exception ex)
{
lblmessage.Text = ex.Message;
lblmessage.Visible = true;
}
}