MSSQL、C# 、Winform、ASP.NET - 数据库备份与还原模块
数据库备份还原类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; //应用相应的命名空间
using System.Windows.Forms;
using System.Collections;
using System.IO;
using System.Data;
using System.Data.SqlClient; namespace canyinxt.Command
{
public static class BacupDatabase
{
static string connectionString = "Data Source=(local);Initial Catalog=master;integrated security = true";
static SqlConnection conn = new SqlConnection(connectionString); #region 备份指定的数据库文件
/// <summary>
/// 备份指定的数据库文件
/// </summary>
/// <param name="DBName">备份名称要与数据库中的数据库名称相同</param>
/// <param name="databasename">要还原的数据库(包含要备份的文件名)</param>
/// <returns></returns>
public static bool BackUpDataBase(string DBName, string databasefile)
{
if (!File.Exists(databasefile))
{ }
//还原的数据库MyDataBase
string sql = "BACKUP DATABASE " + "" + DBName + "" + " TO DISK = '" + databasefile + ".bak' ";
conn.Open();
SqlCommand comm = new SqlCommand(sql, conn);
comm.CommandType = CommandType.Text;
try
{
comm.ExecuteNonQuery();
}
catch (Exception err)
{
string str = err.Message;
conn.Close(); return false;
} conn.Close();//关闭数据库连接
return true;
}
#endregion //以下是还原数据库,稍微麻烦些,要关闭所有与当前数据库相连的连接
#region 还原数据库
/// <summary>
/// 还原数据库
/// </summary>
/// <param name="DBName">要还原数据库名称(此名称要和备份时候的相同)</param>
/// <param name="backfile">数据库文件路径(加名称)</param>
/// <returns></returns>
public static bool RestoreDatabase(string DBName, string backfile)
{
///杀死原来所有的数据库连接进程
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=(local);Initial Catalog=master;integrated security = true";
conn.Open();
string sql = "SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='" + "" + DBName + "" + "'";
SqlCommand cmd1 = new SqlCommand(sql, conn);
SqlDataReader dr;
ArrayList list = new ArrayList();
try
{
dr = cmd1.ExecuteReader();
while (dr.Read())
{
list.Add(dr.GetInt16(0));
}
dr.Close();
}
catch (SqlException eee)
{
MessageBox.Show(eee.ToString());
}
finally
{
conn.Close();
}
//MessageBox.Show(list.Count.ToString());
for (int i = 0; i < list.Count; i++)
{
conn.Open();
cmd1 = new SqlCommand(string.Format("KILL {0}", list[i].ToString()), conn);
cmd1.ExecuteNonQuery();
conn.Close();
// MessageBox.Show("系统已经清除的数据库线程: " + list[i].ToString() + "\r\n正在还原数据库!");
}
MessageBox.Show("系统已经清除的数据库线程: " + list.Count.ToString() + "\r\n正在还原数据库!");
//这里一定要是master数据库,而不能是要还原的数据库,因为这样便变成了有其它进程
//占用了数据库。
string constr = @"Data Source=(local);Initial Catalog=master;integrated security = true";
string database = DBName;
string path = backfile;
string BACKUP = String.Format("RESTORE DATABASE {0} FROM DISK = '{1}' WITH REPLACE", database, path);
SqlConnection con = new SqlConnection(constr);
SqlCommand cmd = new SqlCommand(BACKUP, con);
con.Open();
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("还原成功,点击退出系统,请重新登录!");
Application.Exit();
return true;
}
catch (SqlException ee)
{
//throw(ee); //MessageBox.Show("还原失败"); MessageBox.Show(ee.ToString() + "还原失败!", "还原失败!");
return false; }
finally
{
con.Close();
}
}
#endregion
}
}
备份方法的使用:
调用 Command 文件夹下的 BacupDatabase 类下的 BackUpDataBase(备份方法):
Command.BacupDatabase.BackUpDataBase("DB_CYMS", BackupPath + @"\DB_CYMS")
还原方法的使用:
调用 Command 文件夹下的 BacupDatabase 类下的 RestoreDatabase(还原方法):
Command.BacupDatabase.RestoreDatabase("DB_CYMS", RestoreDB)
参考:http://www.cnblogs.com/enjoyprogram/p/3177693.html
模块下载(直接能使用):http://pan.baidu.com/s/1nt9pIml
MSSQL、C# 、Winform、ASP.NET - 数据库备份与还原模块的更多相关文章
- C#.NET SQL数据库备份与还原解决方案
C#.NET SQL数据库备份与还原解决方案http://www.csframework.com/archive/1/arc-1-20110924-1841.htm 开发框架V2.2(快速开发版)系统 ...
- 【C#】数据库备份及还原的实现代码【转载】
[转载]http://www.codesky.net/article/200908/128600.html C#数据库备份及还原1.在用户的配置时,我们需要列出当前局域网内所有的数据库服务器,并且要列 ...
- Mysql数据库备份和还原常用的命令
Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下 ...
- [转]MySQL数据库备份和还原的常用命令小结
MySQL数据库备份和还原的常用命令小结,学习mysql的朋友可以参考下: 备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword datab ...
- SQL Server 2008数据库备份和还原(还原是必须有完整备份)
转自lwccc, SQLserver2008数据库备份和还原问题(还原是必须有完整备份) 首先,我要说明的是你必须拥有完整的数据库备份,下面的还原教程,才算有用. 这个连接是某高手的异常恢复方法, 实 ...
- PCB MongoDB数据库 备份与还原
一. MongoDB数据库 备份与还原工具介绍: 数据备份工具 mongodump.exe 数据还原工具 mongorestore.exe 二. MongoDB数据库备份 mongodump - ...
- 批处理(bat)实现SQLServer数据库备份与还原
原文:批处理(bat)实现SQLServer数据库备份与还原 备份数据库.bat @echo off set path=%path%;C:\Program Files (x86)\Microsoft ...
- 【RAC】rac环境下的数据库备份与还原
[RAC]rac环境下的数据库备份与还原 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~ ...
- sql操作数据库(2)--->DQL、数据库备份和还原
查询 查询表中的所有的行和列的数据 select * from 表名; select * from student; 查询指定列的数据:如果有多个列,中间用逗号隔开. select 列名1,列 ...
随机推荐
- cocos2d-x游戏开发系列教程-超级玛丽06-CMGameScene
背景 在CMMenuScene中,当用户点击开始游戏时,导演让场景进入到CMGameScene 头文件 class CMGameScene : public cocos2d::CCLayer,publ ...
- VC之美化界面(内容覆盖十分全面,经典)
界面美化 摘要本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者.读者最好具有以下VC基础: 1. 大致了解MFC框架的基本运作原理: 2. 熟悉Windows消息机制,熟悉MFC的消息映射和 ...
- IT第九天 - 包、访问修饰符、变量的内存分配、String类中常用方法
IT第九天 上午 包 1.包的命名规则:域名.项目名称.模块名 2.如:Wfei.com.windows.login 访问限制符 1.四种访问限制符分别对应为: (1)default:默认的,默认为p ...
- C# Setup package Uninstaller
安裝的部分就不介紹了,網上一搜一大堆,這裡只介紹下卸載的部分. 1.在C:\Windows\System32 目录下找到 msiexec.exe 拷贝到相应的地方,可修改名称为 Uninstall.e ...
- 公共 DNS server IP 地址
公共 DNS server IP 地址 名称 DNS server IP 地址 CNNIC SDNS 1.2.4.8 210.2.4.8 114 DNS 114.114.114.114 114.114 ...
- gdal库的三个使用心得
作者:朱金灿 来源:http://blog.csdn.net/clever101 最近使用gdal库比较多,就谈谈gdal库的一些使用心得. 第一个是GDALOpen的访问权限参数会影响图像的创建金字 ...
- Linux下which、whereis、locate、find 区别
我们经常在linux要查找某个文件或命令,但不知道放在哪里了,可以使用下面的一些命令来搜索.which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合 ...
- 一个人的旅行(Dijkstra算法)
这道题可用Dijkstra算法,好像还有floyd等算法,慢慢研究 Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途 ...
- javascript面向对象创建高级 Web 应用程序
目录 JavaScript 对象是词典 JavaScript 函数是最棒的 构造函数而不是类 原型 静态属性和方法 闭包 模拟私有属性 从类继承 模拟命名空间 应当这样编写 JavaScript ...
- Python框架 Flask 项目实战教程
本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走.下载源码,运行pip install -r requirements.txt 建立环境python db_ ...