开发者社区> 技术小甜> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

在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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SQL数据库学习之路(九)
目录   数据库创建补充: 为数据库用户赋予权限 在数据库表中使用视图进行添加修改 数据库创建补充: 以文本格式显示自己创建的数据库表                                          以网格格式显示自己创建的数据库表 可以右键数据库--属性---选项,在选项中可以设置数据库的兼容性,还有是否可以让多人同时访问或者单人访问。
888 0
SQL数据库学习之路(练习)---C#登录界面连数据库
目录 C#登录界面连数据库 一、在数据库中先创建一个数据库。 二、在VS中创建C#的windows窗体应用程序 三、在VS中连接到数据库 四、设计登录界面 五、设置注册界面 六、将form1的按钮和form2进行关联 七、设置form2界面的注册按钮 八、form1的登录按钮设置 九、运行成果 参考文章: C#登录界面连数据库 一、在数据库中先创建一个数据库。
2785 0
SQL数据库学习之路(八)
数据库介绍: 在网页上的主程序中进行注册操作,然后把数据发送给人,人传递这些数据到数据库当中。   为什么学ADO.NET:之前我们所学的只能在查询分析器中查看数据,操作数据。
893 0
SQL数据库学习之路(七)
在SQL server managerment中可以点击帮助,会有帮助文档。 一、联合查询 将多个查询结果集合并成一个。
833 0
SQL数据库学习之路(六)
一、连接查询:当需要的结果需要从多张表中取时 关键问题:哪些表、关系(学生表的Id联系到班级表的Id) 内连接:inner join,两表中完全匹配的数据。
922 0
SQL数据库学习之路(四)
要求:通过SQL语句创建以下基本表:    教师关系 T(T#, TNAME,TITLE)    课程关系 C(C#,CNAME,T#)    学生关系 S(S#,SNAME,AGE,SEX)    选课关系SC(S#,C#,SCORE)    班级关系CLASS(CLASSID,CLASSNAME)    其中红色粗体为主键,带下划线的属性为外键。
825 0
SQL数据库学习之路(三)
一.表数据的操作 1.简单查询 select * from 表名 2.增加数据 insert into 表名(列名) values(值)                   ----要求值的列名与值要位置对应   ...
801 0
SQL数据库学习之路(二)
(一)1.约束:实现数据的有效性检查---------主键(保证值是唯一的) 2.非空(输入的数据不允许为空) 3.唯一(存入的数据不能重复) 4.默认(自己不给数据添加值,值会默认添加) 5.检查(给值一个选定的范围) 6.外键(对关系的有效性进行检查,有关系才有外键) (二)脚本操作数据库 1.不区分大小写,字符串使用单引号,末尾不需要加分号。
815 0
SQL数据库学习之路(一)
1.数据库简介(一个放数据的仓库)  解决的问题:持久化存储,优化读写,保证数据的有效性 关系型数据库:    基于E-R模型(实体-联系图Entity Relationship)    使用sq|语言进行操作(SQL...
1033 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
SQL Server 2017
立即下载
SQL Sever迁移PG经验
立即下载
SQL Server在电子商务中的应用与实践
立即下载