使用c#(ASP.NET)备份还原mssql数据库
作者:认知天下微博 | 来源:互联网 | 2014-05-28 16:07
如果我们使用虚拟主机为网站空间,这时如果需要备份和还原msssql数据库是非常麻烦,如果在网站后台管理当中加入对msssql数据库的操纵,可以使我们对数据库的备份和还原操作很方便,只要一键便可生成。C#(asp.net)备份mssql数据库代码stringpathCreatePat
如果我们使用虚拟主机为网站空间,这时如果需要备份和还原msssql数据库是非常麻烦,如果在网站后台管理当中加入对msssql数据库的操纵,可以使我们对数据库的备份和还原操作很方便,只要一键便可生成。
C#(asp.net)备份mssql数据库代码
string path =
CreatePath();
SQLDMO.Backup oBackup =
new SQLDMO.BackupClass();
SQLDMO.SQLServer
oSQLServer = new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect(server, uid, pwd);
oBackup.Action =
SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = database;
oBackup.Files = path;
oBackup.BackupSetName = database;
oBackup.BackupSetDescription = "数据库备份";
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
return true;
}
catch (Exception ex)
{
return false;
throw ex;
}
finally
{
oSQLServer.DisConnect();
}
C#(asp.net)还原mssql数据库代码
SQLDMO.Restore
oRestore = new SQLDMO.RestoreClass();
SQLDMO.SQLServer
oSQLServer = new SQLDMO.SQLServerClass();
oRestore.Action = 0;
//SQLDMO.RestoreSink_PercentCompleteEventHandler pceh = new
SQLDMO.RestoreSink_PercentCompleteEventHandler(Step);
//
oRestore.PercentComplete += pceh;
try
{
oSQLServer.Connect(server, uid, pwd);
SQLDMO.QueryResults qr = oSQLServer.EnumProcesses(-1);
int iColPIDNum = -1;
int iColDbName = -1;
//杀死其它的连接进程
for (int i = 1; i <= qr.Columns; i++)
{
string strName = qr.get_ColumnName(i);
if (strName.ToUpper().Trim() == "SPID")
{
iColPIDNum = i;
}
else if (strName.ToUpper().Trim() == "DBNAME")
{
iColDbName = i;
}
if (iColPIDNum != -1 && iColDbName != -1)
break;
}
for (int i = 1; i <= qr.Rows; i++)
{
int lPID = qr.GetColumnLong(i, iColPIDNum);
string strDBName = qr.GetColumnString(i, iColDbName);
if (strDBName.ToUpper() == "CgRecord".ToUpper())
oSQLServer.KillProcess(lPID);
}
oRestore.Action =
SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database = database;
oRestore.Files =
HttpContext.Current.Server.MapPath(DropDownList_path.SelectedValue.Trim());
oRestore.FileNumber = 1;
oRestore.ReplaceDatabase = true;
oRestore.SQLRestore(oSQLServer);
base.RegisterStartupScript("page",
"window.location.href='DbBackup.aspx';", "" +
gt.TranslateChineseToOther("还原成功", "zh-CN", Language) + "");
}
catch (Exception ex)
{
base.RegisterStartupScript("page",
"window.location.href='DbBackup.aspx';", "" +
gt.TranslateChineseToOther("恢复数据库失败,请关闭所有和该数据库连接的程序!", "zh-CN",
Language) + "");
//throw ex;
}
finally
{
oSQLServer.DisConnect();
}
推荐阅读
-
本文探讨了在SQL Server中处理几何类型列时遇到的INTERSECT操作限制,并提供了解决方案,包括通过转换数据类型和使用额外表结构的方法。 ...
[详细]
蜡笔小新 2024-11-20 20:09:58
-
本文讲述了一位80后的普通男性程序员,尽管没有高学历,但通过不断的努力和学习,在IT行业中逐渐找到了自己的位置。从最初的仓库管理员到现在的多技能开发者,他的职业生涯充满了挑战与机遇。 ...
[详细]
蜡笔小新 2024-11-16 16:41:44
-
-
在处理大数据量的SQL分页查询时,通常需要执行两次查询来分别获取数据和总记录数。本文介绍了一种优化方法,通过单次查询同时返回分页数据和总记录数,从而提高查询效率。 ...
[详细]
蜡笔小新 2024-11-20 13:54:29
-
本文详细介绍了如何在HTML前端开发中利用UINavigationController进行页面管理和数据传递,适合初学者和有一定基础的开发者学习。 ...
[详细]
蜡笔小新 2024-11-20 09:46:39
-
本文详细介绍了如何使用 C# 创建和调用 SQL Server 存储过程,包括连接数据库、定义命令类型、设置参数等步骤。 ...
[详细]
蜡笔小新 2024-11-19 19:55:59
-
本文档详细介绍了三个SQL Server存储过程的创建与使用方法,包括统计特定类型客房的入住人数、根据房间号查询客房详情以及删除特定类型的客房记录。 ...
[详细]
蜡笔小新 2024-11-19 17:07:24
-
在使用 C# 进行数据库开发时,分页功能是常见的需求。为了避免每次编写重复的分页代码,我开发了一个用户控件,使分页操作变得更加简便。 ...
[详细]
蜡笔小新 2024-11-17 18:13:03
-
遇到 NPM 脚本 'start' 退出且未显示 create-react-app 服务器正在监听请求的问题,请求帮助。 ...
[详细]
蜡笔小新 2024-11-17 10:35:15
-
数据类型--char一、char1.1char占用2个字节char取值范围:【0~65535】char采用unicode编码方式char类型的字面量用单引号括起来char可以存储一 ...
[详细]
蜡笔小新 2024-11-21 08:47:17
-
本文详细介绍了iOS应用的生命周期,包括各个状态及其转换过程中的关键方法调用。 ...
[详细]
蜡笔小新 2024-11-20 23:23:07
-
用户可通过支付198元押金及30元设备维护费租赁AI智能机器人,推荐他人加入可获得相应佣金。随着推荐人数的增加,用户将逐步解锁更高版本,享受更多收益。 ...
[详细]
蜡笔小新 2024-11-20 19:37:48
-
在编程实践中,正确管理和释放资源是非常重要的。本文将探讨 Python 中的 'with' 关键字及其背后的上下文管理器机制,以及它们如何帮助我们更安全、高效地管理资源。 ...
[详细]
蜡笔小新 2024-11-19 15:37:44
-
题目编号:2049 [SDOI2008]Cave Exploration。题目描述了一种动态图操作场景,涉及三种基本操作:断开两个节点间的连接(destroy(a,b))、建立两个节点间的连接(connect(a,b))以及查询两节点是否连通(query(a,b))。所有操作均确保图中无环存在。 ...
[详细]
蜡笔小新 2024-11-18 20:11:35
-
本文介绍了如何使用Echarts for Weixin在微信小程序中构建中国地图,并实现区域点击事件。包括效果展示、条件准备和逻辑实现的具体步骤。 ...
[详细]
蜡笔小新 2024-11-18 19:37:06
-
优先队列是一种特殊的队列,不遵循先进先出原则。它分为最大优先队列和最小优先队列。最大优先队列总是将当前最大的元素优先出队,而最小优先队列则总是将当前最小的元素优先出队。本文将详细介绍如何使用二叉堆在C#中实现这两种优先队列。 ...
[详细]
蜡笔小新 2024-11-16 13:26:52
-