网友写的一个数据库远程备附加、分离、备份、还原类
来源:互联网 发布:打码赚钱软件 编辑:程序博客网 时间:2024/05/22 00:03
/*C#自动附加、分离、备份、还原数据库的操作方法*/
using System;
using System.IO;
using System.Net;
using System.Data;
using System.Threading;
using System.Collections;
using System.Diagnostics;
using System.ComponentModel;
using System.ServiceProcess;
using System.Data.SqlClient;
namespace LengYue
{
/// <summary>
/// 提供附加、分离、备份、还原数据库的操作方法
/// </summary>
public class OperDB_Lengyue
{
//使用集成连接数据库
private static string ConnectionString=Dns.GetHostName()+";integrated security=SSPI;data source=.;persist security info=False;Initial Catalog=master";
/// <summary>
/// 启动sql服务
/// </summary>
private static void StartSqlServer()
{
ProcessStartInfo info=new ProcessStartInfo("net.exe"," start mssqlserver");
info.CreateNoWindow=true;
info.WindowStyle=ProcessWindowStyle.Hidden;
Process ps=Process.Start(info);
}
/// <summary>
/// 附加数据库
/// </summary>
/// <param name="DbName">将数据库附加为的名字</param>
/// <param name="Mdf">MDF</param>
/// <param name="Ldf">LDF</param>
/// <returns>附加成功返回真</returns>
public static bool AddDataBase(string DbName,string path_Mdf,string path_Ldf)
{
bool bl=false;
StartSqlServer();//启动sql服务
try
{
SqlConnection C SqlConnection(ConnectionString);
Conn.Open();
//sp_detach_db分离数据,sp_attach_db附加数据
string ComText="IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'"+DbName+"')"+
"begin EXEC sp_detach_db "+DbName+" end "+//如果数据库已经存在则先分离
"EXEC sp_attach_db @dbname = N'"+DbName+"',"+
"@filename1 = N'"+path_Mdf+"',"+
"@filename2 = N'"+path_Ldf+"'";
SqlCommand Comm = new SqlCommand(ComText,Conn);
Comm.ExecuteNonQuery();
Conn.Close();
bl=true;
}
catch(Exception ex)
{
throw new ApplicationException("附加数据库失败",ex);
}
return bl;
}
/// <summary>
/// 分离数据库
/// </summary>
/// <param name="DbName">要分离的数据库名</param>
/// <returns>分离成功返回真</returns>
public static bool SeverDataBase(string DbName)
{
bool bl=false;
StartSqlServer();//启动sql服务
try
{
SqlConnection C SqlConnection(ConnectionString);
Conn.Open();
//sp_detach_db分离数据,sp_attach_db附加数据
string ComText="EXEC sp_detach_db "+DbName;
SqlCommand Comm = new SqlCommand(ComText,Conn);
Comm.ExecuteNonQuery();
Conn.Close();
bl=true;
}
catch(Exception ex)
{
throw new ApplicationException("分离数据库失败",ex);
}
return bl;
}
/// <summary>
/// 备份数据库
/// </summary>
/// <param name="DbName">要备份的数据库名</param>
/// <param name="BackupPath_name">备份设备(路径+文件.bak)</param>
/// <returns> 备份成功返回真</returns>
public static bool BackupDataBase(string DbName,string BackupPath_name)
{
bool bl=false;
//如果看不懂下面的代码请不要随便改动
StartSqlServer();//启动sql服务
try
{
SqlConnection C SqlConnection(ConnectionString);
Conn.Open();
//sp_detach_db是分离数据的储藏过程,sp_attach_db是附加数据的储藏过程
string ComText="use master;backup database "+DbName+" to disk = '"+BackupPath_name+"'";
SqlCommand Comm = new SqlCommand(ComText,Conn);
Comm.ExecuteNonQuery();
Conn.Close();
bl=true;
}
catch(Exception ex)
{
throw new ApplicationException("备份数据库失败",ex);
}
return bl;
}
/// <summary>
/// 还原数据库
/// </summary>
/// <param name="BackupPath_name">数据源(路径+文件)</param>
/// <returns>还原成功返回真</returns>
public static bool ReplaceDataBase(string DBName, string BackupPath_name)
{
bool bl=false;
StartSqlServer();//启动sql服务
try
{
SqlConnection C SqlConnection(ConnectionString);
Conn.Open();
string ComText="use master;restore database "+DBName+" From disk = '"+BackupPath_name+"' with replace;";
SqlCommand Comm = new SqlCommand(ComText,Conn);
Comm.ExecuteNonQuery();
Conn.Close();
bl=true;
}
catch(Exception ex)
{
throw new ApplicationException("还原数据库失败",ex);
}
return bl;
}
}
}
- 网友写的一个数据库远程备附加、分离、备份、还原类
- 一个操作数据库的类(备份,还原,分离,附加,添加删除用户等操作)
- 【转载苏飞的博客】一个操作数据库的类(备份,还原,分离,附加,添加删除用户等操作)
- sql数据库的分离和附加,备份和还原
- SQL数据库的分离附加,导出脚本,备份和还原
- 数据库 备份、还原、分离、附加区别
- 数据库备份还原与分离附加
- c#实现附加分离备份还原数据库(绝对原创)
- 使用C#对sqlser数据库【备份】【还原】【分离】【附加】
- C#对数据库操作的类,包括附加、还原、备份、分离、压缩、创建、修改等常见操作
- 用分离、附加的方式实现sql server数据库的备份和还原
- SQL Server 2005数据库的附加和分离/备份与还原实验指导
- 数据库恢复、备份、分离、附加类
- 数据库恢复、备份、分离、附加类
- c#自动附加分离备份还原数据库 C#生成安装文件后自动附加数据库的思路跟算法 打包之后,运行之前
- 远程数据库备份还原
- SQL 数据库 学习 005 学习必备的一些操作 --- 如何新建数据库 如何附加和分离数据库(如何备份还原数据库) 如何删除数据库
- 数据库的附加分离
- 产品感的具体化以及培养浅谈
- sql
- 什么才叫伟人
- 一生要小心处理的50件事
- python基础
- 网友写的一个数据库远程备附加、分离、备份、还原类
- android 关于程序升级问题
- Linux下RAR安装及相关命令
- 小孙的正则
- [MethodImpl(MethodImplOptions.Synchronized)]
- linux内存管理2:内存映射和需求分页(英文名字:demand Paging,又叫:缺页中断)
- 如何通过Eclipse从已有的项目代码中快速提出接口
- JXL : write images and... into excel
- seo介绍