在asp.net中备份还原SQL Server数据库

简介:
+关注继续查看
  在web中,安全性主要体现在两个方面:一个是程序安全性,即防止网页在插入恶意代码;另一个是数据库安全性,这个我们可以经常备份数据库来实现。
在文中,我将演示如果在网页中备份和恢复数据库。
        其实备份和恢复数据库都是利用SQL Server提供的SQL语句来备份的。
备份:use master;backup database @name to disk=@path;
恢复:use master;restore database @name from disk=@path;
        上面用的是参数化SQL语句,可以在程序执行的时候动态给参数赋值。
 
代码:
     1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="DatabaseAction.aspx.cs" Inherits="DatabaseAction" %> 
     2. 
     3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
     4. 
     5. <html xmlns="http://www.w3.org/1999/xhtml" > 
     6. <head runat="server"> 
     7.         <title>无标题页</title> 
     8. </head> 
     9. <body> 
    10.         <form id="form1" runat="server"> 
    11.         <div> 
    12.         <table border="0" width="100%"> 
    13.         <tr><td colspan="2">数据库还原和备份</td></tr> 
    14.         <tr><td>请选择数据库</td><td> 
    15.                 <asp:DropDownList ID="ddlDatabaseList" runat="server"> 
    16.                 </asp:DropDownList></td></tr> 
    17.         <tr><td> 
    18.                 数据库文件名</td><td> 
    19.                 <asp:TextBox ID="txtDbFileName" runat="server"></asp:TextBox></td></tr> 
    20.         <tr><td> 
    21.                 操作选项</td><td> 
    22.                 <asp:RadioButton ID="rbBackup" runat="server" Checked="True" GroupName="action" Text="备份" /> 
    23.                 <asp:RadioButton ID="rbRestore" runat="server" GroupName="action" Text="还原" /></td></tr> 
    24.                 <tr><td> 
    25.                 操作</td><td> 
    26.                            <asp:Button ID="btnOK" runat="server" OnClick="btnOK_Click" Text="执行" /></td></tr> 
    27.         </table> 
    28.         </div> 
    29.         </form> 
    30. </body> 
    31. </html>
 
后台代码:
     1. using System; 
     2. using System.Data; 
     3. using System.Configuration; 
     4. using System.Collections; 
     5. using System.Web; 
     6. using System.Web.Security; 
     7. using System.Web.UI; 
     8. using System.Web.UI.WebControls; 
     9. using System.Web.UI.WebControls.WebParts; 
    10. using System.Web.UI.HtmlControls; 
    11. using System.Data.SqlClient; 
    12. 
    13. /// <summary> 
    14. /// 功能说明:本例中演示在asp.net中如何备份和恢复数据库 
    15. /// 备份数据库主要使用数据库的备份语句。数据库备份文件放在 
    16. /// App_Data文件夹下。 
    17. /// 作者:周公 
    18. /// 日期:2008-08-19 
    19. /// 首发地址:http://blog.csdn.net/zhoufoxcn/archive/2008/08/19/2796077.aspx 
    20. /// </summary> 
    21. public partial class DatabaseAction : System.Web.UI.Page 
    22. { 
void Page_Load() void Page_Load(object sender, EventArgs e) 
    24.         { 
    25.                 if (!Page.IsPostBack) 
    26.                 { 
    27.                         //在DropDownList中绑定所有数据库 
    28.                         SqlConnection connection = new SqlConnection("Data Source=ZHOUFOXCN;User ID=sa;Password=sa"); 
    29.                         SqlCommand command = new SqlCommand("sp_helpdb", connection); 
    30.                         command.CommandType = CommandType.StoredProcedure; 
    31.                         connection.Open(); 
    32.                         SqlDataReader reader = command.ExecuteReader(); 
    33.                         ddlDatabaseList.DataSource = reader; 
    34.                         ddlDatabaseList.DataTextField = "Name"
    35.                         ddlDatabaseList.DataBind(); 
    36.                         reader.Close(); 
    37.                         connection.Close(); 
    38.                 } 
    39.         } 
void btnOK_Click() void btnOK_Click(object sender, EventArgs e) 
    41.         { 
    42.                 string dbFileName = txtDbFileName.Text.Trim(); 
    43.                 SqlConnection connection = new SqlConnection("Data Source=ZHOUFOXCN;User ID=sa;Password=sa"); 
    44.                 string dbName = ddlDatabaseList.SelectedValue; 
    45.                 if (!dbFileName.EndsWith(".bak")) 
    46.                 { 
    47.                         dbFileName += ".bak"
    48.                 } 
    49.                 if (rbBackup.Checked)//备份数据库 
    50.                 { 
    51.                         SqlCommand command = new SqlCommand("use master;backup database @name to disk=@path;",connection); 
    52.                         connection.Open(); 
    53.                         string path=Server.MapPath("~\\App_Data")+"\\"+dbFileName; 
    54.                         command.Parameters.AddWithValue("@name", dbName); 
    55.                         command.Parameters.AddWithValue("@path", path); 
    56.                         command.ExecuteNonQuery(); 
    57.                         connection.Close(); 
    58.                 } 
    59.                 else//恢复数据库 
    60.                 { 
    61.                         SqlCommand command = new SqlCommand("use master;restore database @name from disk=@path;", connection); 
    62.                         connection.Open(); 
    63.                         string path = Server.MapPath("~\\App_Data") + "\\" + dbFileName; 
    64.                         command.Parameters.AddWithValue("@name", dbName); 
    65.                         command.Parameters.AddWithValue("@path", path); 
    66.                         command.ExecuteNonQuery(); 
    67.                         connection.Close(); 
    68.                 } 
    69.         } 
    70. }
以上代码在WindowsXP+VisualStudio2005+SQL Server2000下测试通过
















本文转自周金桥51CTO博客,原文链接: http://blog.51cto.com/zhoufoxcn/166839,如需转载请自行联系原作者

相关实践学习
使用交互方式创建数据表
本次实验主要介绍如何在RDS-SQLServer数据库中使用交互方式创建数据表。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
2月前
|
SQL 开发框架 前端开发
ASP.NET Core+Element+SQL Server开发校园图书管理系统(完)
ASP.NET Core+Element+SQL Server开发校园图书管理系统(完)
42 0
|
2月前
|
开发框架 JavaScript .NET
ASP.NET Core+Element+SQL Server开发校园图书管理系统(四)(下)
ASP.NET Core+Element+SQL Server开发校园图书管理系统(四)(下)
30 0
|
2月前
|
开发框架 前端开发 JavaScript
ASP.NET Core+Element+SQL Server开发校园图书管理系统(四)(上)
ASP.NET Core+Element+SQL Server开发校园图书管理系统(四)(上)
38 0
|
2月前
|
开发框架 JavaScript .NET
ASP.NET Core+Element+SQL Server开发校园图书管理系统(三)(下)
ASP.NET Core+Element+SQL Server开发校园图书管理系统(三)(下)
31 0
ASP.NET Core+Element+SQL Server开发校园图书管理系统(三)(下)
|
SQL 测试技术 数据库
SQL Server中使用数据库快照的方式来完成测试环境中数据库的轻量级备份还原操作
原文:SQL Server中使用数据库快照的方式来完成测试环境中数据库的轻量级备份还原操作   在开发或者测试环境的数据库中,经常会发现有开发或者测试人员误删除表或者数据的情况,对于开发或者测试库,一般都没有安排定时的备份任务去备份数据库,一方面是由于存储资源有限,不太可能给开发或者测试环境准备大量的存储空间,二是必要性不是很强,开发或者测试库的数据库对象变化太多,通过还原备份的方式又有可能冲掉其最近新建的数据库对象。
896 0
|
SQL 数据库 数据安全/隐私保护
MS SQL数据批量备份还原(适用于MS SQL 2005+)
原文:MS SQL数据批量备份还原(适用于MS SQL 2005+) 我们知道通过Sql代理,可以实现数据库的定时备份功能;当数据库里的数据库很多时,备份一个数据库需要建立对应的定时作业,相对来说比较麻烦; 还好,微软自带的osql工具,比较实用,通过在命令行里里输入命令,也能实现数据库备份的功能;如果能通过sql语句来生成一个批处理文件,那就方便了; 下面即是生成批处理文件的sql脚本,通过它可以实现:运行一个批处理文件,备份数据库服务器上的所有数据库到指定目录。
1005 0
|
SQL 安全 .NET
ASP.net防止SQL注入方法
1、sql注入比较难防,需要替换select,delete等一打字符  其实对于字符型替换再多都没有替换单引号为两个单引号来的好!对于数字型替换再多都没有用,一定要类型转换。
1369 0
|
SQL 数据库
如何快速备份还原Sql Server 数据库
备份数据库 选择你要备份的数据库,鼠标右键单击,选择任务-备份   弹出备份数据库窗口,选择添加    弹出选择备份目标窗口,点击浏览,选择存放备份数据库的目录,输入文件名,后缀名输入.bak,点击确定,确定,备份完成     还原数据库  鼠标右键单击数据库,选择还原文件和文件   ...
1263 0
|
SQL 存储 监控
采用Opserver来监控你的ASP.NET项目系列(二、监控SQL Server与Asp.Net项目)
原文:采用Opserver来监控你的ASP.NET项目系列(二、监控SQL Server与Asp.Net项目) 前言 之前有过2篇关于如何监控ASP.NET core项目的文章,有兴趣的也可以看看.
1745 0
推荐文章
更多