DBController心得之一:利用DMO对象对SQL2005数据库进行Backup和restore的操作
/// get the database in SqlServer 遍历数据库,得到talbe的列表
/// </summary>
public string[] GetSqlServerDatabases()
{
try
{
SqlConnection mySqlCon = new SqlConnection("server=" + myServer + ";uid=" + myUser + ";pwd=" + myPassword + ";database=" + "");
SqlCommand mySqlCmd = new SqlCommand("sp_databases",mySqlCon);
mySqlCon.Open();
ArrayList myDataBaseList = new ArrayList();
///*****************************************used SqlDataReader method,readOnly
//SqlDataReader mySqlRdr = mySqlCmd.ExecuteReader();
clear the former string[]
//while(mySqlRdr.Read())
//{
// myDataBaseList.Add(mySqlRdr["DATABASE_NAME"].ToString());
//}
//mySqlRdr.Close();
//mySqlCon.Dispose();
///*****************************************used SqlDataReader method,readOnly
SqlDataAdapter mySqlAdt = new SqlDataAdapter("sp_databases", mySqlCon);
DataSet myDS = new DataSet();
mySqlAdt.Fill(myDS,"DATABASE_NAME");
mySqlCon.Close();
{
myDataBaseList.Add(row[0].ToString());
}
return myArr;//myDataBaseList;
}
catch(Exception e)
{
throw e;
}
}
/// Backup DB.
/// </summary>
public bool backupDB(string targetFile, string toBackup)
{
SQLDMO.Backup objBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect(myServer, myUser, myPassword);
objBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
objBackup.Database = toBackup; //Gets or sets the database on which the backup or restore operation runs.
objBackup.Files = targetFile; //指定备份的物理文件
objBackup.BackupSetName = toBackup; //Gets or sets the name used to identify a particular backup set.
objBackup.BackupSetDescription = "数据库备份Backup DB";
objBackup.Initialize = true;
//回调Step进行进度条的处理
SQLDMO.BackupSink_PercentCompleteEventHandler pcech = new SQLDMO.BackupSink_PercentCompleteEventHandler(Step);
objBackup.PercentComplete += pcech;
objBackup.SQLBackup(oSQLServer);
return true;
}
catch (Exception e)
{
status = e.ToString();
throw e;
}
finally
{
oSQLServer.DisConnect();
}
}
/// <summary>
/// 进行数据库的还原操作
/// </summary>
/// <param name="toRestore"></param>
/// <param name="targetFile"></param>
/// <returns></returns>
public bool restoreDB(string toRestore,string targetFile)
{
if (!File.Exists(targetFile))
return false;
if(exepro(toRestore)!=true)//执行存储过程
{
return false;
}
else
{
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
try
{
exepro(toRestore);
oSQLServer.LoginSecure = false;
oSQLServer.Connect(myServer, myUser, myPassword);
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
oRestore.Database = toRestore;
/**自行修改
oRestore.Files = targetFile;
oRestore.FileNumber = 1;
oRestore.ReplaceDatabase = true;
oRestore.SQLRestore(oSQLServer);
}
catch(Exception e)
{
throw e;
}
finally
{
oSQLServer.DisConnect();
}
}
}
/// <summary>
/// 杀死调用当前库的所有进程
/// </summary>
/// <returns></returns>
private bool exepro(string toRestore)
{
SqlCommand cmd = new SqlCommand("killspid",conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@dbname", toRestore);
try
{
conn.Open();
cmd.ExecuteNonQuery();
return true;
}
catch(Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}
}
@dbname varchar(200) --要关闭进程的数据库名
as
declare @sql nvarchar(500)
declare @spid nvarchar(20)
select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)
open #tb
fetch next from #tb into @spid
while @@fetch_status=0
begin
exec('kill '+@spid)
fetch next from #tb into @spid
end
close #tb
deallocate #tb
go
转载于:https://blog.51cto.com/chris/27949
DBController心得之一:利用DMO对象对SQL2005数据库进行Backup和restore的操作相关推荐
- SQL2005中使用backup、restore来备份和恢复数据库
在SQL2005数据库中利用SQL语句进行数据备份与还原: 备份backup:backup database 数据库名称 tO disk = 备份路径 例:BACKUP DATABASE test T ...
- c++读取文本文件里的指定位置的字符_利用FSO对象向文本文件中写入信息
大家好,我们今日讲解"VBA信息获取与处理"教程中第十八个专题"FSO对象对文件及文件夹的处理"的第五节"用FSO对象向文本文件中写入信息" ...
- java access ole word,利用OLE对象实现Word文档操作
Word 是常用的字处理软件,在编程中充分利用现有的Word 文档就可以减少很多数据的处理.详细介绍了在ASP.NET 的程序中,利用数据库中的OLE 对象,实现Word文档的在线存取及预览. 1.引 ...
- vba fso读utf 文本_利用FSO对象操作文件
大家好,我们今日讲解"VBA信息获取与处理"教程中第十八个专题"FSO对象对文件及文件夹的处理"的第二节"利用FSO对象操作文件",这个专题 ...
- 用html编写输出今天是星期几,利用Date对象编写程序,判断并输出今天是开学的第几周,星期几。...
利用Date对象编写程序,判断并输出今天是开学的第几周,星期几. (function(){ var startDay = new Date(2014,8,1); //根据指定的年月日时分 ...
- 利用FormData对象实现AJAX文件上传功能及后端实现
包括HTML基础设置.CSS界面优化.JS利用FormData对象和AJAX进行上传.后端接收文件并存储到指定路径以及删除文件操作. FE HTML 基础的设置: <form enctype=& ...
- 利用对象池优化数据库操作
简介:这是利用对象池优化数据库操作的详细页面,介绍了和asp.net,.Net,创建,对象池,示例有关的知识,要查看更多相关信息,请点击此处 说到对象池,大家都不陌生.很多人都实现过,网上的代码也满天 ...
- 利用连接对象增删改数据 jdbc 20210409235645323
目标 利用jdbc的连接对象 向数据表中增删改数据 明确操作的表 库,表,数据结果 获取执行者对象 执行者是帮我们干活的一个对象 构建sql语句 添加数据 先试一试 获取一个合法的添加语句 把这个语句 ...
- vba listbox 内容输出到文本_利用FSO对象读取文本文件的信息
大家好,我们今日讲解"VBA信息获取与处理"教程中第十八个专题"FSO对象对文件及文件夹的处理"的第四节"利用FSO对象读取文本文件的信息" ...
最新文章
- Js 向json对象中添加新元素
- 抓包工具Wireshark基本介绍和学习TCP三次握手
- 辅助类KeyNode
- Java笔记-使用jpa连接mysql数据库
- python sklearn 绘制决策树模型的节点图
- 【数据仓库】什么是数据仓库?
- 苹果更新系统微信收不到服务器,苹果手机升级iOS12后微信无法提示新消息的解决办法 亲测有效...
- Flash 实验 飞机爆炸
- Another version of Vue Devtools seems to be installed报错
- Resnet网络中数字的含义以及连接方式
- openlayers动态添加自定义div图层 具有筛选功能 和浮窗
- python数学圆周率_Python编程超简单方法算圆周率
- 话费充值接口文档源码(2)
- matlab中globalsearch,MATLAB中fmincon和globalsearch、multistart优化问题
- java项目-第120期儿童成长博客记录系统-java毕业设计
- iOS.11后的 iOS LaunchImage
- Discuz新秀网络验证管理系统- 火山PC - ver 1.0 - 软件开发框架
- 计算机无法共享打印,解决win7电脑打印机无法共享|打印机共享提示0x000006d9应如何解决...
- BUGKU-真正的爱情
- FPA笔记五 计算ILF/EIF功能点
热门文章
- mysql 临时表 插入_mysql临时表插入数据有关问题
- oracle中forall in,oracle10g的forall功能加强
- 远程过程调用失败_Dubbo 本地调用
- 神经网络 深度学习 专业术语解释(Step, Batch Size, Iteration,Epoch)
- 抚州虚拟服务器,南通虚拟主机_南通云虚机_南通主机申请_南通网站空间_爱名网(www.22.cn)...
- js 连接mysql_JS连接数据库
- c++ 11新特性总结_JDK1.8新特性Stream和Collectors19个常用示例总结
- 2021年12届蓝桥杯C++B组省赛
- openCV中的findHomography函数分析以及RANSAC算法的详解(源代码分析)
- mfc中加logo以及背景图