使用.net备份和还原数据库
原文:使用.net备份和还原数据库

CSDN网友的提问http://community.csdn.net/Expert/TopicView3.asp?id=4929678

C#实现SQLSERVER2000数据库备份还原的两种方法
: 方法一(不使用SQLDMO):

///
///备份方法
///
SqlConnection conn = new SqlConnection("Server=.;Database=master;User ID=sa;Password=sa;");

SqlCommand cmdBK = new SqlCommand();
cmdBK.CommandType = CommandType.Text;
cmdBK.Connection = conn;
cmdBK.CommandText = @"backup database test to disk='C:\ba' with init";

try
{
conn.Open();
cmdBK.ExecuteNonQuery();
MessageBox.Show("Backup successed.");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
conn.Dispose();
}

///
///还原方法
///
SqlConnection conn = new SqlConnection("Server=.;Database=master;User ID=sa;Password=sa;Trusted_Connection=False");
conn.Open();

//KILL DataBase Process
SqlCommand cmd = new SqlCommand("SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='test'", conn);
SqlDataReader dr;
dr = cmd.ExecuteReader();
ArrayList list = new ArrayList();
while(dr.Read())
{
list.Add(dr.GetInt16(0));
}
dr.Close();
for(int i = 0; i < list.Count; i++)
{
cmd = new SqlCommand(string.Format("KILL {0}", list), conn);
cmd.ExecuteNonQuery();
}

SqlCommand cmdRT = new SqlCommand();
cmdRT.CommandType = CommandType.Text;
cmdRT.Connection = conn;
cmdRT.CommandText = @"restore database test from disk='C:\ba'";

try
{
cmdRT.ExecuteNonQuery();
MessageBox.Show("Restore successed.");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}

方法二(使用SQLDMO):

///
///备份方法
///
SQLDMO.Backup backup = new SQLDMO.BackupClass();
SQLDMO.SQLServer server = new SQLDMO.SQLServerClass();
//显示进度条
SQLDMO.BackupSink_PercentCompleteEventHandler progress = new SQLDMO.BackupSink_PercentCompleteEventHandler(Step);
backup.PercentComplete += progress;

try
{
server.LoginSecure = false;
server.Connect(".", "sa", "sa");
backup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
backup.Database = "test";
backup.Files = @"D:\test\myProg\backupTest";
backup.BackupSetName = "test";
backup.BackupSetDescription = "Backup the database of test";
backup.Initialize = true;
backup.SQLBackup(server);
MessageBox.Show("Backup successed.");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
server.DisConnect();
}
this.pbDB.Value = 0;

///
///还原方法
///
SQLDMO.Restore restore = new SQLDMO.RestoreClass();
SQLDMO.SQLServer server = new SQLDMO.SQLServerClass();
//显示进度条
SQLDMO.RestoreSink_PercentCompleteEventHandler progress = new SQLDMO.RestoreSink_PercentCompleteEventHandler(Step);
restore.PercentComplete += progress;

//KILL DataBase Process
SqlConnection conn = new SqlConnection("Server=.;Database=master;User ID=sa;Password=sa;Trusted_Connection=False");
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='test'", conn);
SqlDataReader dr;
dr = cmd.ExecuteReader();
ArrayList list = new ArrayList();
while(dr.Read())
{
list.Add(dr.GetInt16(0));
}
dr.Close();
for(int i = 0; i < list.Count; i++)
{
cmd = new SqlCommand(string.Format("KILL {0}", list), conn);
cmd.ExecuteNonQuery();
}
conn.Close();

try
{
server.LoginSecure = false;
server.Connect(".", "sa", "sa");
restore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
restore.Database = "test";
restore.Files = @"D:\test\myProg\backupTest";
restore.FileNumber = 1;
restore.ReplaceDatabase = true;
restore.SQLRestore(server);
MessageBox.Show("Restore successed.");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
server.DisConnect();
}
this.pbDB.Value = 0;

posted on 2014-11-06 17:58 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/4079568.html

使用.net备份和还原数据库相关推荐

  1. 在ASP.NET中备份和还原数据库

    昨天看了<C#项目实录>中的进销存管理系统,和其他书里讲的案例一样,无非也就是数据库增删查改,但是这个进销存系统中有一个备份和还原数据库的功能,蛮有兴趣的,看了一下代码,原来如此,也就是通 ...

  2. MySQL使用命令备份和还原数据库

    这篇文章主要介绍了MySQL使用命令备份和还原数据库,本文使用Mysql内置命令实现备份和还原,比较简单,需要的朋友可以参考下 数据库在使用当中都会有数据库备份工作,当数据库发生严重错误无法启动,或者 ...

  3. SQLyog备份与还原数据库

    SQLyog备份与还原数据库 备份数据库 还原数据库

  4. mysql备份数据库怎么还原数据库文件_mysql如何备份和还原数据库文件

    MySQL使用命令备份和还原数据库 这篇文章主要介绍了MySQL使用命令备份和还原数据库,本文使用Mysql内置命令实现备份和还原,比较简单,需要的朋友可以参考下 数据库在使用当中都会有数据库备份工作 ...

  5. pgAdmin备份和还原数据库

    上一篇博客说到安装PostgreSql数据库,安装完之后需要pgAdmin来连接数据库.其实pgAdmin是不需要单独安装的,在数据库的安装路径下的bin文件夹中有一个pgAdmin3.exe文件,双 ...

  6. Mysql-DQL语句,数据库的备份和还原,数据库的约束(笔记)

    目录 DQL语句其他语法:分组group by ,筛选having, 分页查询limit以及分页查询使用场景 1.DQL语句之分组查询:group by 2.DQL语句之筛选查询 having 3.分 ...

  7. 异步备份和还原数据库:.NET发现之旅(六)

    信息系统是数据密集型的,数据的套帐,备份,还原是客户最希望有的功能,这一节课就讨论下C/S系统下数据库的异步备份和还原,B/S系统的数据备份和还原和这个类似. 既然是异步,首先会想到使用多线程技术.. ...

  8. SQL语句备份和还原数据库

    1,使用SQL最简单备份,还原数据库 1 /* 备份 */ 2 backup database Test to disk='D:/Test.bak' 3 /* 还原 */ 4 restore data ...

  9. mysql db.opt+ (frm,MYD,MYI)备份与还原数据库

    2019独角兽企业重金招聘Python工程师标准>>> mysql数据库的备份与还原主要有3中方式 方式一 备份:通过导出sql执行文件备份数据库 还原:通过导入sql执行文件到my ...

最新文章

  1. Elasticsearch配置使用
  2. JAVA SE 学习day_10:集合、聊天室练习最终版
  3. React Native 的顶部导航栏和底部导航栏目
  4. 深入浅出: Java回调机制(异步)
  5. BS4xpath的使用
  6. 了解电商优惠券的一生,看完这篇就足够了!
  7. 利用Oracle虚拟私有数据库进行整合
  8. 从Excel到Python:最常用的36个Pandas函数
  9. JDK1.8并发包中的类
  10. mybatis学习(54):鉴定器
  11. 漫步最优化十八——点到集合的映射
  12. 【Java编程思想笔记】-集合1
  13. php7+结合比较运算符,php7运算符
  14. 【每月总结】2021年6月
  15. 我还在努力,你千万不要喜欢上别人
  16. 【python】Flask之session使用
  17. Day01 每日英语
  18. r4900g3系统安装linux_H3C UniServer R4900 G3服务器NVMe硬盘配置阵列方法以及相关操作...
  19. 为什么ps因为计算机限制,photoshop为什么经常崩溃 ps防止崩溃解决办法
  20. 一文简单了解互联网流量变现

热门文章

  1. HttpClient系列~StringContent与FormUrlEncodedContent
  2. HDOJ 1233 (克鲁斯卡尔+并查集)
  3. 【bzoj题解】1001 狼抓兔子
  4. null和undefined相等
  5. 通过Web Services上传和下载图片文件
  6. 形状相似的物品_空运一般货物及危险品和特殊物品对包装的要求和规定!
  7. redis实践的一点思路,关于支付回调
  8. 基于Docker搭建Gitlab代码存储
  9. Android 可开关式顶部下拉view
  10. vux radio 改造为 tree 代码片段