ADO.NET 数据库备份等操作
public class SqlServerBackup
{
private string database;
private string server;
private string uid;
private string pwd; public string Database
{
get
{
return this.database;
}
set
{
this.database = value;
}
} public string Server
{
get
{
return this.server;
}
set
{
this.server = value;
}
} public string Pwd
{
get
{
return this.pwd;
}
set
{
this.pwd = value;
}
} public string Uid
{
get
{
return this.uid;
}
set
{
this.uid = value;
}
} public bool DbBackup(string url)
{
Backup oBackup = new BackupClass();
SQLServer oSQLServer = new SQLServerClass();
bool result;
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect(this.server, this.uid, this.pwd);
oBackup.Action = SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = this.database;
oBackup.Files = url;
oBackup.BackupSetName = this.database;
oBackup.BackupSetDescription = "数据库备份";
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
result = true;
}
catch
{
result = false;
}
finally
{
oSQLServer.DisConnect();
}
return result;
} public bool DbRestore(string url)
{
bool result;
if (!this.exepro())
{
result = false;
}
else
{
Restore oRestore = new RestoreClass();
SQLServer oSQLServer = new SQLServerClass();
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect(this.server, this.uid, this.pwd);
oRestore.Action = SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database = this.database;
oRestore.Files = url;
oRestore.FileNumber = ;
oRestore.ReplaceDatabase = true;
oRestore.SQLRestore(oSQLServer);
result = true;
}
catch
{
result = false;
}
finally
{
oSQLServer.DisConnect();
}
}
return result;
} private bool exepro()
{
SqlConnection conn = new SqlConnection(string.Concat(new string[]
{
"server=",
this.server,
";uid=",
this.uid,
";pwd=",
this.pwd,
";database=master"
}));
SqlCommand cmd = new SqlCommand("killspid", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@dbname", this.database);
bool result;
try
{
conn.Open();
cmd.ExecuteNonQuery();
result = true;
}
catch
{
result = false;
}
finally
{
conn.Close();
}
return result;
}
}
只需引入Interop.SQLDMO.dll
ADO.NET 数据库备份等操作的更多相关文章
- 用C#对ADO.NET数据库完成简单操作
数据库访问是程序中应用最普遍的部分.随着C#和ADO.NET的引入,这种操作变得更简单.这篇文章将示范四种最基础的数据库操作. ● 读取数据.其中包括多种数据类型:整型,字符串,日期型. ● 写数据. ...
- ADO对SQL Server 2008数据库的基础操作
最近在学习ADO与数据库的相关知识,现在我将自己学到的东西整理写出来,也算是对学习的一种复习. 这篇文章主要说明如何遍历某台机器上所有的数据库服务,遍历某个服务中所有的数据库,遍历数据库中的所有表以及 ...
- SQLSERVER数据库备份操作和还原操作做了什么
SQLSERVER数据库备份操作和还原操作做了什么 看了这篇文章:还原/备份时做了些什么 自己也测试了一下,下面说的错误日志指的是SQLSERVER ERRORLOG 一般在C:\Program Fi ...
- Delphi通过ADO链接数据库及对数据库的增加,删除,修改,读取操作实例教程4
ADO是一种程序对象,用于表示用户数据库中的数据结构和所包含的数据.ADO(ActiveXDataObjects,ActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关 ...
- oracle--序列&视图&索引&视图&可视化操作&分页&数据库备份
--oracle学习内容--oracle的管理系统学习--oracle的数据管理学习--oracle的用户管理--oracle二维表管理--oracle的其他知识 --oracle的序列.视图.索引 ...
- sql操作数据库(2)--->DQL、数据库备份和还原
查询 查询表中的所有的行和列的数据 select * from 表名; select * from student; 查询指定列的数据:如果有多个列,中间用逗号隔开. select 列名1,列 ...
- backup1:开始数据库备份
数据库备份分为数据文件备份和日志文件备份,数据文件的备份分为:完整备份和差异备份.在SQL Server 2012中,能够将数据分布式备份到不同的存储设备上,一般情况,只将数据备份到一个备份文件(.b ...
- Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...
- SQL Server 数据库备份还原和数据恢复
认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点. 数据 ...
随机推荐
- java如何寻找main函数对应的类
参考springboot Class<?> deduceMainApplicationClass() { try { StackTraceElement[] stackTrace = ne ...
- 修复VSAN无法看到主机磁盘
登陆ESXI 格式化分区即可,造成这个问题的原因之一 这个盘被使用过分区格式被保留 没有格式化干净 partedUtil mklabel /vmfs/devices/disks/naa.6300 ...
- POJ.3537.Crosses and Crosses(博弈论 Multi-SG)
题目链接 \(Description\) 有一个一行n列的棋盘,每个人每次往上放一个棋子,将三个棋子连在一起的人赢.问是否有必胜策略. \(Solution\) 首先一个人若在\(i\)处放棋子,那么 ...
- BZOJ.2177.曼哈顿最小生成树(Kruskal)
\(Solution\) 参考 对于每个点,向唯一有可能与它形成MST的8个点连边,由于是双向单边,所以每个点最多连出4条边(证明见blog) 怎么找到一个区域内最近的点? 只考虑y轴右侧45°的区域 ...
- 用一颗学美术的心来理解PID调节
用一颗学美术的心来理解PID调节 泡利 3 个月前 相信大家小时候都画过美术作品吧?(什么?你还是宝宝?)没关系,不管你是文科.理科.工科.艺术还是家里蹲的,这篇文章对你来说一定会简单到爆炸的. 这种 ...
- BeautifulSoup库的使用方法
from bs4 import BeautifulSoup import lxml html = ''' <html><head><title>The Dormou ...
- bzoj 2013 上升计数
题意: 给一个数集和一个数d,问满足下列要求的排列数(相同的数要区分): a[i]+d>=a[i+1] ( i in [1,n) ) 因为数的给出顺序不重要,所以先排序,假如我们已经解决了前i ...
- netty同时做http和websocket(netty入门)
---恢复内容开始--- http://www.jianshu.com/p/5c29c6c6d28c ---恢复内容结束--- http://www.jianshu.com/p/5c29c6c6d28 ...
- C# 调用windows api 操作鼠标、键盘、窗体合集...更新中
鼠标操作window窗体合集...更新中 1.根据句柄查找窗体 引自http://www.2cto.com/kf/201410/343342.html 使用SPY++工具获取窗体 首先打开spy+ ...
- 【转】大数据分析中Redis怎么做到220万ops
原文:http://www.cnblogs.com/nnhy/archive/2018/01/16/Redis220.html 大数据时代,海量数据分析就像吃饭一样,成为了我们每天的工作.为了更好的为 ...