如何用SQLDMO在ASP.NET页面下实现数据库的备份与恢复

【智能制造】- APS系列|05 APS 排产的五大底层算法逻辑 很多人误以为APS只是给生产工单排先后顺序,实则整套系统依托成熟算法体系,完成多维度约束下的最优生产决策在制造业数字化排产普及的当下,依旧有不少制造管理者对APS存在认知误区,将其等同于简易工单排序工具。事实上,专业级高级计划与排程系统,早已脱离单纯按时间排序的基础功能,而是依托一整套成熟完善的底层算法逻辑,整合现场各类生产限制条件,在海量变量中自动推演、筛选、输出最贴合企业经营目标的生产方案。 阅读详情
如何用SQLDMO在ASP.NET页面下实现数据库的备份与恢复    [ 日期:2005-10-27 ]   [ 来自:博客园 ]

我们知道,用SQLDMO可以实现对数据库的备份与恢复,下面给出简单的实现方法。
首先需要添加对SQLDMO引用
按此在新窗口打开图片

1.实现数据库的备份:
 1/**//// <summary>
 2        /// 数据库备份
 3        /// </summary>
 4        /// <returns>备份是否成功</returns>
 5        public bool DbBackup()
 6        {
 7            string path = CreatePath();
 8            SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
 9            SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
10            try
11            {
12                oSQLServer.LoginSecure = false;
13                oSQLServer.Connect(server,uid, pwd);
14                oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
15                oBackup.Database = database;
16                oBackup.Files = path;
17                oBackup.BackupSetName = database;
18                oBackup.BackupSetDescription = "数据库备份";
19                oBackup.Initialize = true;
20                oBackup.SQLBackup(oSQLServer);
21
22                return true;
23            }
24            catch(Exception ex)
25            {
26                return false;
27                throw ex;
28            }
29            finally
30            {
31                oSQLServer.DisConnect();
32            }
33        }
2.实现数据库恢复:
在恢复时要注意先杀掉当前数据库的所有进程
 1/**//// <summary>
 2        /// 数据库恢复
 3        /// </summary>
 4        public string DbRestore()
 5        {
 6            if(exepro()!=true)//执行存储过程
 7            {
 8                return "操作失败";
 9            }
10            else
11            {
12                SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
13                SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
14                try
15                {
16                    exepro();
17                    oSQLServer.LoginSecure = false;
18                    oSQLServer.Connect(server, uid, pwd);
19                    oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
20                    oRestore.Database = database;
21                    /**////自行修改
22                    oRestore.Files = @"d:/aaa/aaa.bak";
23                    oRestore.FileNumber = 1;
24                    oRestore.ReplaceDatabase = true;
25                    oRestore.SQLRestore(oSQLServer);
26
27                    return "ok";
28                }
29                catch(Exception e)
30                {
31                    return "恢复数据库失败";
32                    throw e;
33                }
34                finally
35                {
36                    oSQLServer.DisConnect();
37                }
38            }
39        }
40        
41        /**//// <summary>
42        /// 杀死当前库的所有进程
43        /// </summary>
44        /// <returns></returns>
45        private bool exepro()
46        {
47
48            SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
49            SqlCommand cmd = new SqlCommand("killspid",conn1);
50            cmd.CommandType = CommandType.StoredProcedure;
51            cmd.Parameters.Add("@dbname","aaa");
52            try
53            {
54                conn1.Open();
55                cmd.ExecuteNonQuery();
56                return true;
57            }
58            catch(Exception ex)
59            {
60                return false;
61            }
62            finally
63            {
64                conn1.Close();
65            }
66        }
完整的操作类如下:
  1using System;
  2using System.Collections;
  3using System.Data;
  4using System.Data.SqlClient;
  5
  6namespace DbBackUp
  7{
  8    /**//// <summary>
  9    /// 创建人:Terrylee
 10    /// 创建时间:2005年8月1日
 11    /// 功能描述:实现数据库的备份和还原
 12    /// 更新记录:
 13    /// </summary>
 14    public class DbOperate
 15    {    
 16        /**//// <summary>
 17        /// 服务器
 18        /// </summary>
 19        private string server;
 20        
 21        /**//// <summary>
 22        /// 登录名
 23        /// </summary>
 24        private string uid;
 25        
 26        /**//// <summary>
 27        /// 登录密码
 28        /// </summary>
 29        private string pwd;
 30        
 31        /**//// <summary>
 32        /// 要操作的数据库
 33        /// </summary>
 34        private string database;
 35        
 36        /**//// <summary>
 37        /// 数据库连接字符串
 38        /// </summary>
 39        private string conn;
 40
 41        /**//// <summary>
 42        /// DbOperate类的构造函数
 43        /// 在这里进行字符串的切割,获取服务器,登录名,密码,数据库
 44        /// </summary>
 45        public DbOperate()
 46        {
 47            conn = System.Configuration.ConfigurationSettings.AppSettings["constr"].ToString();
 48            server = StringCut(conn,"server=",";");
 49            uid = StringCut(conn,"uid=",";");
 50            pwd = StringCut(conn,"pwd=",";");
 51            database = StringCut(conn,"database=",";");
 52        }
 53        
 54        /**//// <summary>
 55        /// 切割字符串
 56        /// </summary>
 57        /// <param name="str"></param>
 58        /// <param name="bg"></param>
 59        /// <param name="ed"></param>
 60        /// <returns></returns>
 61        public string StringCut(string str,string bg,string ed)
 62        {
 63            string sub;
 64            sub=str.Substring(str.IndexOf(bg)+bg.Length);
 65            sub=sub.Substring(0,sub.IndexOf(";"));
 66            return sub;
 67        }
 68        
 69        /**//// <summary>
 70        /// 构造文件名
 71        /// </summary>
 72        /// <returns>文件名</returns>
 73        private string CreatePath()
 74        {
 75            string CurrTime = System.DateTime.Now.ToString();
 76            CurrTime = CurrTime.Replace("-","");
 77            CurrTime = CurrTime.Replace(":","");
 78            CurrTime = CurrTime.Replace(" ","");
 79            CurrTime = CurrTime.Substring(0,12);
 80            string path = @"d://aaa//";
 81            path += database;
 82            path += "_db_";
 83            path += CurrTime;
 84            path += ".BAK";
 85            return path;
 86        }
 87
 88        /**//// <summary>
 89        /// 数据库备份
 90        /// </summary>
 91        /// <returns>备份是否成功</returns>
 92        public bool DbBackup()
 93        {
 94            string path = CreatePath();
 95            SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
 96            SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
 97            try
 98            {
 99                oSQLServer.LoginSecure = false;
100                oSQLServer.Connect(server,uid, pwd);
101                oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
102                oBackup.Database = database;
103                oBackup.Files = path;
104                oBackup.BackupSetName = database;
105                oBackup.BackupSetDescription = "数据库备份";
106                oBackup.Initialize = true;
107                oBackup.SQLBackup(oSQLServer);
108
109                return true;
110            }
111            catch(Exception ex)
112            {
113                return false;
114                throw ex;
115            }
116            finally
117            {
118                oSQLServer.DisConnect();
119            }
120        }
121
122        /**//// <summary>
123        /// 数据库恢复
124        /// </summary>
125        public string DbRestore()
126        {
127            if(exepro()!=true)//执行存储过程
128            {
129                return "操作失败";
130            }
131            else
132            {
133                SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
134                SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
135                try
136                {
137                    exepro();
138                    oSQLServer.LoginSecure = false;
139                    oSQLServer.Connect(server, uid, pwd);
140                    oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
141                    oRestore.Database = database;
142                    /**////自行修改
143                    oRestore.Files = @"d:/aaa/aaa.bak";
144                    oRestore.FileNumber = 1;
145                    oRestore.ReplaceDatabase = true;
146                    oRestore.SQLRestore(oSQLServer);
147
148                    return "ok";
149                }
150                catch(Exception e)
151                {
152                    return "恢复数据库失败";
153                    throw e;
154                }
155                finally
156                {
157                    oSQLServer.DisConnect();
158                }
159            }
160        }
161        
162        /**//// <summary>
163        /// 杀死当前库的所有进程
164        /// </summary>
165        /// <returns></returns>
166        private bool exepro()
167        {
168
169            SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
170            SqlCommand cmd = new SqlCommand("killspid",conn1);
171            cmd.CommandType = CommandType.StoredProcedure;
172            cmd.Parameters.Add("@dbname","aaa");
173            try
174            {
175                conn1.Open();
176                cmd.ExecuteNonQuery();
177                return true;
178            }
179            catch(Exception ex)
180            {
181                return false;
182            }
183            finally
184            {
185                conn1.Close();
186            }
187        }
188
189    }
190
191}
192
在相应的按钮
1<asp:Button id="wbtn_Backup" runat="server" Width="60px" Text="备 份" CssClass="Button"></asp:Button>单击事件里调用即可:
 1/**//// <summary>
 2        /// 备份按钮
 3        /// </summary>
 4        /// <param name="sender"></param>
 5        /// <param name="e"></param>
 6        private void wbtn_Backup_Click(object sender, System.EventArgs e)
 7        {
 8            DbOperate dbop = new DbOperate();
 9            dbop.DbBackup();
10        }


程序代码:[ 复制代码到剪贴板 ]

CREATE PROCEDURE killspid
/*----------------------------------
创建人:Terrylee
创建事件:2005年8月1日
功能说明:
参数说明:
----------------------------------*/
(
 @dbname varchar(20) --数据库的名称
)
AS
BEGIN
 DECLARE @sql nvarchar(500)
 DECLARE @spid int
 SET @sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
 EXECUTE (@sql)
 OPEN getspid
 FETCH NEXT FROM getspid INTO @spid
 WHILE @@fetch_status<>-1
  BEGIN
   EXECUTE('kill '+@spid)
   FETCH NEXT FROM getspid INTO @spid
  END
 CLOSE getspid
 DEALLOCATE getspid
END
GO

原文地址:http://terrylee.cnblogs.com/archive/2005/10/13/253667.html

 


 
【Unity】网络游戏实战(序章)MMORPG大型多人在线角色扮演 + 中国象棋联网对战 本系列会基于两种常见的网络游戏类型(MMORPG大型多人在线角色扮演和多人棋牌),从零开始实现网络游戏开发中的大多数环节。【杜绝代码炫技】本系列杜绝代码炫技,摈弃那些高深的设计模式,一切业务逻辑的实现代码追求浅显易懂,即便是网络编程菜鸟,也能循序渐进掌握本系列的核心要点。【授之鱼也授之渔】与一些开源库那样只授予源码不同,本系列还会基于各个技术要点展开详解,并结合切实的可直接运行的Demo,授之鱼更授之渔。 阅读详情

相关推荐

HFSS实战:手把手教你设计一款小型化圆极化微带天线(附仿真文件)

本文详细介绍了使用HFSS设计小型化圆极化微带天线的完整流程,包括工程初始化、辐射贴片设计、仿真设置与优化等关键步骤。通过实战案例,帮助工程师掌握圆极化天线设计技巧,解决轴比控制和耦合馈电匹配等核心问题,适用于物联网终端和便携式设备应用。

weixin_32770423的博客 338

[转载]如何用SQLDMO在ASP.NET页面下实现数据库的备份与恢复

本文转载自:http://www.cnblogs.com/terrylee/articles/253667.html 原文作者: 网名:TerryLee 本名:李会军 位置:中国 北京 我们知道,用SQLDMO可以实现对数据库的备份与恢复,下面给出简单的实现方法。 首先需要添加对SQLDMO引用 1.实现数据库的备份: 1/**/...

adsads564564的博客 131

机器学习(三) ----------线性回归算法(梯度下降+正则化)

线性回归算法在机器学习中具有核心地位,它以其简单性和直观性为基础,为理解数据间的关系提供了基本框架。作为许多复杂算法的基础,线性回归不仅用于预测目标变量,还用于解释自变量对目标的影响。同时,它也是机器学习入门的经典算法,对于推广机器学习知识和技术具有重要意义。

2301_77539454的博客 1867

用SQLDMO在ASP.NET页面下实现数据库的备份与恢复

用SQLDMO在ASP.NET页面下实现数据库的备份与恢复 我们知道,用SQLDMO可以实现对数据库的备份与恢复,下面给出简单的实现方法。    首先需要添加对SQLDMO引用。1000){this.resized=true;this.style.width=1000;}" alt="" />1.实现数据库的备份: 1/**////  2        /// 数据库备份 3        /

SmartJavaer的专栏 1220

Ubuntu 20.04下IgH EtherCAT主站部署实战

本文详细介绍了在Ubuntu 20.04系统上部署IgH EtherCAT主站的完整流程,包括环境准备、源码编译、内核模块配置、网络接口设置及实时性优化等关键步骤。通过实战案例和常见问题排查,帮助开发者快速掌握EtherCAT主站部署技巧,提升工业自动化系统的稳定性和实时性。

weixin_30596343的博客 1071

避坑指南:微信小程序蓝牙广播在iOS上的那些‘坑’(附serviceUuids传值解决方案)

本文深入解析微信小程序蓝牙广播在iOS平台上的开发难点,特别是`serviceUuids`传值解决方案。通过对比iOS与安卓的蓝牙协议实现差异,提供实战编码策略和硬件端配合方案,帮助开发者有效规避兼容性问题,提升蓝牙外围设备开发效率。

weixin_30316097的博客 423

如何用SQLDMO在ASP.NET页面下实现数据库的备份与恢复!

完整的操作类如下: 1usingSystem;2usingSystem.Collections;3usingSystem.Data;4usingSystem.Data.SqlClient;56namespaceDbBackUp7{8/**////<summary>9///创建人:Terrylee10...

202

SAP VF01开票报错:出口贸易数据不完整

找了半天资料,最后发现是没有维护凭证抬头的数据;由于我不是SD模块顾问,整体流程使用的是原本环境里面的数据,用新建工厂引用,所以也不知道为啥会出发这个贸易业务。正常传到FICO模块,生成会计凭证、获利分析、利润中心及CO凭证。需要维护这三个字段后才能正常转到FI生成会计凭证。VF01开票报错:出口贸易数据不完整。

MaiKouBei的博客 1540

AI PLC落地实战:确定性与智能的工业融合方法论

PLC(可编程逻辑控制器)作为工业自动化核心,其与AI的融合并非概念炒作,而是面向高可靠实时控制场景的必然演进。本质在于在严守IEC 61131-3确定性框架前提下,通过协处理器、边缘网关与OPC UA信息模型实现AI能力分层嵌入。技术价值体现在毫秒级抖动可控、零拷贝数据通路、ONNX模型灵活部署及安全功能物理隔离。典型应用场景覆盖振动预测性维护、焊接质量实时调控、跨品牌产线协同诊断等。本文聚焦工业现场真实约束,解析新旧设备协同升级路径,尤其围绕‘linux cnc plc’集成需求与‘codesys读取p

weixin_34342905的博客 276

Eclipse邂逅Deepseek:本地化部署全攻略

通过前面一系列的步骤,我们成功地在 Eclipse 中完成了 Deepseek 的本地化部署,并且对部署后的功能进行了测试和优化,还解决了可能遇到的一些常见问题。这一过程不仅让我们体验到了将强大的大语言模型与高效的开发环境相结合的魅力,也为我们在软件开发过程中带来了诸多便利。本地化部署 Deepseek 到 Eclipse,使得我们在代码编写过程中能够获得智能的代码补全和精准的问答支持,大大提高了开发效率。同时,本地化部署保障了数据的安全性和隐私性,避免了数据在传输过程中可能面临的风险。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4512
上一篇: SQLDMO For C#
下一篇: 在 ASP.NET 中执行 URL 重写
SmartJavaer
博客等级 码龄21年 13粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值