利用C#备份和还原sqlserver数据库时,最好使用master数据库进行操作,以下是备份和还原的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;namespace WindowsFormsApplication1
{public partial class Form1 : Form{// 连接字符串private string connectionString = "Data Source=DSF-PC;Initial Catalog=master;User ID=sa;Password=123456";// 构造函数public Form1(){InitializeComponent();}// 备份private void btnBackup_Click(object sender, EventArgs e){SaveFileDialog saveFileDialog = new SaveFileDialog();saveFileDialog.Title = "备份数据库";saveFileDialog.Filter = "备份文件(*.bak)|*.bak";saveFileDialog.RestoreDirectory = true;if (saveFileDialog.ShowDialog() == DialogResult.OK){bool ok = Backup("Test", saveFileDialog.FileName);if (ok){MessageBox.Show("备份成功");}else{MessageBox.Show("备份失败");}}}// 还原private void btnRestore_Click(object sender, EventArgs e){OpenFileDialog openFileDialog = new OpenFileDialog();openFileDialog.Title = "还原数据库";openFileDialog.Filter = "备份文件(*.bak)|*.bak";openFileDialog.RestoreDirectory = true;if (openFileDialog.ShowDialog() == DialogResult.OK){bool ok = Restore("Test", openFileDialog.FileName);if (ok){MessageBox.Show("还原成功");}else{MessageBox.Show("还原失败");}}}// 备份数据库private bool Backup(string dbName, string filePath){SqlConnection connection = new SqlConnection();connection.ConnectionString = connectionString;connection.Open();SqlCommand command = new SqlCommand();command.Connection = connection;command.CommandText = string.Format("backup database {0} to disk = '{1}'", dbName, filePath);try{command.ExecuteNonQuery();return true;}catch{return false;}finally{connection.Close();}}// 还原数据库private bool Restore(string dbName, string filePath){SqlConnection connection = new SqlConnection();connection.ConnectionString = connectionString;connection.Open();SqlCommand command = new SqlCommand();command.Connection = connection;command.CommandText = string.Format("select spid from sysprocesses,sysdatabases where sysprocesses.dbid=sysdatabases.dbid and sysdatabases.Name='{0}'", dbName);// 获取当前所有连接进程List<short> list = new List<short>();try{SqlDataReader reader = command.ExecuteReader();while (reader.Read()){list.Add(reader.GetInt16(0));}reader.Close();}catch{return false;}finally{connection.Close();}// 杀死当前所有连接进程try{for (int i = 0; i < list.Count; i++){connection.Open();command = new SqlCommand(string.Format("kill {0}", list[i].ToString()), connection);command.ExecuteNonQuery();connection.Close();}}catch{return false;}finally{connection.Close();}// 还原数据库connection.Open();command.CommandText = string.Format("restore database {0} from disk = '{1}' with replace", dbName, filePath);try{command.ExecuteNonQuery();}catch{return false;}finally{connection.Close();}return true;}}
}

【转】C#实现SqlServer数据库的备份和还原相关推荐

  1. 挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面)

    挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 原文:挺好用的SQLSERVER数据库自动备份工具SQLBackupAndFTP(功能全面) 挺好用的SQLSE ...

  2. DQL查询语句约束数据库设计备份和还原

    DQL:查询语句 1. 排序查询* 语法:order by 子句* order by 排序字段1 排序方式1 , 排序字段2 排序方式2...* 排序方式:* ASC:升序,默认的.* DESC:降序 ...

  3. Linux下MySQL数据库的备份与还原,mysql快速导入导出数据库实例演示,解决mysql大数据量数据库导出慢的问题

    MySQL 数据库的备份与还原 第一章:数据库的导入与导出 ① 数据库的导出 ② 大数据量下 mysqldump 的导出优化 ③ 数据库的导出 第一章:数据库的导入与导出 ① 数据库的导出 需要用到 ...

  4. MySQL学习笔记05【多表操作、三大范式、数据库的备份和还原】

    MySQL 文档-黑马程序员(腾讯微云):https://share.weiyun.com/RaCdIwas 1-MySQL基础.pdf.2-MySQL约束与设计.pdf.3-MySQL多表查询与事务 ...

  5. [JavaWeb-MySQL]数据库的备份和还原

    数据库的备份和还原 1. 命令行:* 语法:* 备份: mysqldump -u用户名 -p密码 数据库名称 > 保存的路径* 还原:1. 登录数据库2. 创建数据库3. 使用数据库4. 执行文 ...

  6. SQL2008数据库的备份与还原

    一.上期小编分享了SQL2000数据库的备份与还原,这期小编再来分享下SQL2008数据库的备份与还原. 二.SQL2008数据库的备份 1.登录sql server management studi ...

  7. Java对MySql数据库进行备份与还原

    数据库的备份与还原对项目而言是无疑是对安全考虑的好方法,MySQL 数据库备份原理: Navicat等数据库界面软件通用的数据库备份原理就是直接调用MYSQL本身的系统命令. 那么Java是如何来实现 ...

  8. java day27【DQL:查询语句、约束 、多表之间的关系 、范式 、数据库的备份和还原】...

    第一章  DQL:查询语句 1. 排序查询 * 语法:order by 子句 * order by 排序字段1 排序方式1 , 排序字段2 排序方式2... * 排序方式: * ASC:升序,默认的. ...

  9. 数据库的备份与还原+INI文件数据库参数配置

    利用SQL语句来完成对SQL Server数据库的备份与还原功能 仅以练习 完成代码如下: ------------------------------ unit Unit1; interface u ...

  10. 达梦数据库之备份与还原

    备份与还原是DBA必备的技能之一,为防止数据的误操作.误删除等突发情况,所以备份还原至关重要,一下从几方面共同学习一下达梦数据库的备份与还原基础知识. 一.概述 达梦数据库的备份还原方式:物理备份还原 ...

最新文章

  1. 阿里再添AI新物种,消费者天猫双11网上逛“视觉超市”
  2. OCtaveResNet 测试
  3. tcp/udp高并发和高吐吞性能测试工具
  4. VTK修炼之道1_初识VTK
  5. 复现经典:《统计学习方法》第 7 章 支持向量机
  6. ChineseDiachronicCorpus项目,大规模中文历时语料库
  7. tidyr | 对数据框分行或分列进行嵌套操作
  8. 18家机构批量刷新SOTA!T5 is all you need!
  9. 偏微分方程数值解法pdf_数值模拟偏微分方程的三种方法:FDM、FEM及FVM
  10. 百度网盘资源搜索网站,搬运+验证
  11. 电子商业汇票知识问答题
  12. vs商业智能项目的安装
  13. Python+Selenium练习篇13-设置浏览器下载文件默认地址
  14. 慧正工作流注册码获取
  15. canvas实现简单的画图功能
  16. Linux 中实用但很小众的 11 个炫酷终端命令
  17. 十多个巨头App上可跑智能小程序了
  18. 这些SEO搜索技巧你会不会用?
  19. halcon相机标定助手_halcon相机标定和图像矫正
  20. 联通物联卡流量查询、充值的操作方法

热门文章

  1. 【语音加密】基于matlab GUI语音信号加密解密【含Matlab源码 295期】
  2. php5 Trace如何配置,配置参考 · ThinkPHP5.0完全开发手册 · 看云
  3. anaconda python命令_怎么用anaconda命令行?
  4. cv2中函数名的规则
  5. mysql 组复制详解_MySQL 5.7: 使用组复制(MySQL Group Replication)
  6. php 替换数字和字母,php preg_替换非字母数字字符并选择连词,然后拆分
  7. python lnum_python 基础笔记 — 数据类型之数字
  8. axvspan函数--Matplotlib
  9. 神经网络在关系抽取中的应用
  10. Vue设置页面的title