本文实例讲述了C#实现的SQL备份与还原功能。分享给大家供大家参考,具体如下:

//记得加 folderBrowserDialog1 openFileDialog1 控件

using System.Data.SqlClient; //连接数据库 公共变量

namespace WindowsApplication1.GoodMenhod

{

class getSqlConnection

{

string sql = "Data Source=win7-pc;database=Kc;uid=sa;pwd=sa";

SqlConnection conn;

public SqlConnection GetCon()

{

conn = new SqlConnection(sql);

conn.Open();

return conn;

}

}

}

using System.Data.SqlClient;

using WindowsApplication1.GoodMenhod; //引用命名空间

namespace WindowsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e) //打开 备份路径

{

if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)

{

txtPath.Text = folderBrowserDialog1.SelectedPath.ToString();

}

}

private void button2_Click(object sender, EventArgs e) //备份名称 保存

{

try

{

if (txtPath.Text != "" )

{

getSqlConnection geCon = new getSqlConnection();

SqlConnection con = geCon.GetCon();

string strBacl = "backup database Kc to disk='" + txtPath.Text.Trim() + "\\" + txtName.Text.Trim() + ".bak'";

SqlCommand Cmd = new SqlCommand(strBacl, con);

if (Cmd.ExecuteNonQuery() != 0)

{

MessageBox.Show("数据备份成功!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Information);

this.Close();

}

else

{

MessageBox.Show("数据备份失败!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

else

{

MessageBox.Show("请填写备份的正确位置及文件名!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Information);

}// end

}

catch (Exception ee)

{

MessageBox.Show(ee.Message.ToString());

}

}

}

}

private void button3_Click(object sender, EventArgs e) //打开 将要还原的文件

{

openFileDialog1.FilterIndex = 0;

openFileDialog1.FileName = "";

openFileDialog1.Filter = "txt files (*.bak)|*.bak|All files (*.*)|*.*";

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

textPaht.Text = openFileDialog1.FileName.ToString();

}

}

private void button4_Click(object sender, EventArgs e) //还原

{

if (textPaht.Text != "")

{

getSqlConnection geCon = new getSqlConnection();

SqlConnection con = geCon.GetCon();

if (con.State == ConnectionState.Open)

{

con.Close();

}

//连接的数据库是master,所以要初始化新的连接字符串

string DateStr = "Data Source=win7-pc;Database=master;User id=sa;PWD=sa";

SqlConnection conn = new SqlConnection(DateStr);

conn.Open();

//-------------------杀掉所有连接 db_CSManage 数据库的进程--------------

// string sql = " SELECT spid FROM master..sysprocesses WHERE dbid=db_id('" + strDBName + "')";

string strSQL = "select spid from master..sysprocesses where dbid=db_id( 'Kc') ";//读取连接当前数据库的进程

SqlDataAdapter Da = new SqlDataAdapter(strSQL, conn);

DataTable spidTable = new DataTable();

Da.Fill(spidTable);

SqlCommand Cmd = new SqlCommand();

Cmd.CommandType = CommandType.Text;

Cmd.Connection = conn;

for (int iRow = 0; iRow <= spidTable.Rows.Count - 1; iRow++)

{

Cmd.CommandText = "kill " + spidTable.Rows[iRow][0].ToString(); //强行关闭用户进程

Cmd.ExecuteNonQuery();

}

conn.Close();

conn.Dispose();

//--------------------------------------------------------------------

SqlConnection sqlcon = new SqlConnection(DateStr);

sqlcon.Open();

SqlCommand sqlCmd = new SqlCommand("backup database Kc to disk='" + textPaht.Text.Trim() + "' restore database Kc from disk='" + textPaht.Text.Trim() + "'", sqlcon);

sqlCmd.ExecuteNonQuery();

sqlCmd.Dispose();

sqlcon.Close();

sqlcon.Dispose();

MessageBox.Show("数据还原成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("为了必免数据丢失,在数据库还原后将关闭整个系统。");

Application.Exit();

}

else

{

MessageBox.Show("请选择备份文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

}

}

复制代码

(编辑:雷林鹏 来源:网络)

[.NET开发] C#实现的SQL备份与还原功能示例的更多相关文章

  1. MySQL 数据备份与还原的示例代码

    MySQL 数据备份与还原的示例代码 这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 一.数据备份 1.使用 ...

  2. C#.NET SQL数据库备份与还原解决方案

    C#.NET SQL数据库备份与还原解决方案http://www.csframework.com/archive/1/arc-1-20110924-1841.htm 开发框架V2.2(快速开发版)系统 ...

  3. SQL Server 2008数据备份与还原的原理是什么?

    为什么SqlServer有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的SqlServer数据 ...

  4. mysql备份、还原数据库(命令行)

    这里记录下MySQL如何通过命令行备份和还原数据库. 简单的三个步骤 方法很简单,可以分为三个步骤: 1.打开cmd控制台(命令行). 2.输入相应命令完成备份还原操作. 3.关闭cmd控制台. 就和 ...

  5. 非智能手机通信录备份并还原至Android智能手机方法

    随着智能手机早已深入普通用户的生活,2-3线城市的用户也逐渐从使用非智能机换成使用智能机.最近便遇见了这样一个转移通讯录的需求.之前使用的手机型号是BBK K201,通信录中绝大部分保存在了手机中,最 ...

  6. 如何用SQL语句实现Mysql数据库的备份与还原

    以前一直做android客户端的项目,根本没有开发asp.net mvc的开发,现阶段做了一个模块,参数设置,以及数据库的备份与还原.其需求如下: 参数设置 本项参数设置为对自动数据备份进行设置,管理 ...

  7. 开发板远程操作SQL SERVER解决方案

    环境: 开发板:freescale 2.6 armv71,系统只读,唯一可以读写的路径是/tmp/sd(这是一个sd卡).程序放在/tmp/sd/transfer下(下文以运行路径代替),sql语句以 ...

  8. SQL Server 2012不支持从SQL Server 2000的备份进行还原

    错误: dbbackup failed: Unable to restore database 'ppt'Not valid backupThe database was backed up on a ...

  9. [SQL SERVER 2005]数据库差异备份及还原

    因为之前遇到还原差异备份,最开始遇到SQLServer报错:”无法还原日志备份或差异备份,因为没有文件可用于前滚“.查阅很多资料后,终于得到解决.收集整理成这篇随笔. 问题原因:出现这种错误绝大多数是 ...

随机推荐

  1. Amaze UI JS 气泡弹出

    http://amazeui.org/javascript/popover?_ver=2.x

  2. lnmp之阿里云源码安装mysql5.7.17

    mysql5.7.17一直号称世界上最好的mysql 那么就在阿里云主机linux安装它(采用的源码安装mysql5.7.17) 我在阿里云主机上安装它 连接阿里云主机 进入,跟我们自己装的虚拟机一毛 ...

  3. nginx之gzlib压缩,expires缓存

    gzip压缩网页内容的压缩编码与传输速度优化我们观察news.163.com的头信息请求:Accept-Encoding:gzip,deflate,sdch响应:Content-Encoding:gz ...

  4. hdu6000 Wash ccpc-20162017-finals B Wash

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6000 题目: Wash Time Limit: 20000/10000 MS (Java/Ot ...

  5. Object-C-Foundation-set

    无序集合 哈希表 NSSet *colors=[NSSet setWithObjects:@@"yellow",@"red",@"blue" ...

  6. Python: 读文件,写文件

    读写文件是最常见的IO操作.Python内置了读写文件的函数. 读写文件前,我们先了解一下,在磁盘上读写文件的功能都是有操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求 ...

  7. Hive 常用语句(持续更新中)

    1)按包含关键字在指定库中查找表名:show tables in dw '*_fab_*';   2)查看和删除自己hdfs系统所用的空间和文件(与shell命令合用):hive命令行下: --查看仓 ...

  8. 使用原生的javascript封装动画函数(有callback功能)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. linux chkconfig 管理服务开机自启动

    chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. 使用语法:chkconfig [--ad ...

  10. cojs 二分图计数问题1-3 题解报告

    OwO 良心的FFT练手题,包含了所有的多项式基本运算呢 其中一部分解法参考了myy的uoj的blog 二分图计数 1: 实际是求所有图的二分图染色方案和 我们不妨枚举这个图中有多少个黑点 在n个点中 ...