`
chenqingwei
  • 浏览: 33254 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C#操作数据库备份和还原

    博客分类:
  • NET
阅读更多
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;




分享到:
评论

相关推荐

    C#实现数据库备份与还原(两种方法)

    用C#写的实现数据库备份与还原的工程(VS2008下可直接运行,低于08的版本可以拷贝代码实现,记得要在COM中添加SQLSMO引用,本例数据库为SuperMarket,请更改为你所需备份的数据库),个人特意将两种方法放在同一工程...

    C# MySQL数据库备份还原

    C# MySQL数据库批量备份还原工具是使用C#语言开发的一个数据库备份还原工具,主要用于对MySQL数据库进行批量备份和还原操作。该工具使用了Process类来操作cmd.exe,调用mysqldump.exe来执行备份和还原命令。 知识点...

    C#实现MySQL数据库的备份、还原和初始化

    总结起来,C#实现MySQL数据库的备份、还原和初始化主要涉及对数据库操作的封装,通过执行命令行工具(如`mysqldump`和`mysql`)来完成数据库的生命周期管理。理解这些基本操作对任何使用C#与MySQL交互的开发者来说都...

    C#编写的数据库备份和还原的类

    数据库备份和还原的类,连接数据函数需要自己编写

    C#带进度条数据库备份

    在IT行业中,数据库备份是确保数据安全和业务连续性的重要环节。C#作为.NET框架的主要编程语言,可以用于创建高效且用户友好的应用程序,包括带有进度条的数据库备份功能。以下将详细介绍如何利用C#实现这个功能,...

    C#数据库备份与还原

    "C#数据库备份与还原"这个主题聚焦于如何利用C#编程语言来实现这两个功能。C#是一种广泛使用的面向对象的编程语言,尤其适合开发Windows应用程序,包括与数据库交互的应用。 1. **C#数据库连接**: 在C#中,我们...

    C#实现数据库前台备份还原代码,只有备份和还原两个功能

    总的来说,理解C#中如何利用SMO进行数据库备份和还原,以及在Web环境中如何实现这些操作,是提升开发技能的重要一步。这个过程涉及到数据库连接、SQL命令构造、异常处理和用户交互等多个方面,是.NET开发者必备的...

    C#数据库备份还原(源代码)

    总结,C#数据库备份还原源代码实例是一个实用的工具,可以帮助开发者实现自动化备份和恢复流程。强制中断数据库MSSQL连接的功能则为处理紧急情况或优化资源利用提供了额外的支持。通过对这些知识点的理解和应用,IT...

    C#实现数据库的还原与备份

    以上内容只是一个基础的C#实现数据库备份和还原的概述。在实际项目中,可能还需要考虑更多的细节,如错误处理、日志记录、异步操作以及更复杂的备份策略(如增量备份、差异备份等)。对于大型企业级应用,可能还会...

    C#实现备份、还原MySql数据库

    C#可以借助MySQL的数据提供者(如MySql.Data.MySqlClient)来连接和操作MySQL数据库。要备份MySQL数据库,我们需要执行SQL的`mysqldump`命令,这是一个用于创建数据库备份的实用程序。在C#中,我们可以通过`Process`...

    C#备份还原数据库回溯源码

    总的来说,这个项目提供了一个使用C#实现的数据库备份和恢复解决方案,适用于需要回溯操作的环境。通过自定义的代码,用户可以在Windows Forms界面中方便地执行这些操作,保证了数据的安全性和可恢复性。对于想要...

    SQL Server数据库备份与恢复(C#代码示例)

    C#中进行SQL Server数据库备份通常涉及以下步骤: 1. 连接数据库:使用SqlConnection类建立到SQL Server实例的连接。 2. 构建备份命令:创建SqlCommand对象,并设置其CommandText属性为SQL备份语句,例如`BACKUP ...

    用C#程序备份和还原数据库

    用C#程序备份和还原数据库用C#程序备份和还原数据库用C#程序备份和还原数据库

    完整的数据库备份和还原(c#)

    根据给定的文件标题、描述、标签以及部分内容,我们可以总结出以下关于数据库备份与还原的知识点,特别是聚焦于使用C#进行SQL Server数据库的操作。 ### 数据库备份的重要性 数据库备份是确保数据安全的关键步骤,...

    数据库备份和还原

    数据库备份和还原是数据库管理中的核心操作,对于数据的安全性和业务连续性至关重要。在C#环境中,我们可以利用SQL Server提供的API或ADO.NET等工具来实现这一功能。下面将详细介绍C#实现数据库备份和还原的相关知识...

    c# winform 数据库备份还原

    c# ,winform, 数据库,备份,还原,sql server 2005 好的话给评个分数,谢谢了!好的话给评个分数,谢谢了 好的话给评个分数,谢谢了 好的话给评个分数,谢谢了 好的话给评个分数,谢谢了 好的话给评个分数,谢谢了

    c# asp.net实现sql server数据库备份

    总之,使用C#和ASP.NET实现SQL Server数据库备份,主要涉及SMO库的使用,通过编写代码来配置备份类型、设备和选项,然后调用SqlBackup方法执行备份。在实际应用中,还需要考虑错误处理、日志记录、备份策略规划等...

    C#备份还原mysql数据库

    1. 使用`mysqldump`生成数据库备份文件。 2. 在C#代码中执行系统命令以运行`mysqldump`。 3. 如果需要,可以使用`MySqlBulkLoader`或逐行执行SQL语句的方式还原数据库。 4. 确保处理异常并验证备份和还原操作的成功...

    C# 数据库备份还原

    C# 数据库备份还原,备份,还原

    完整的数据库备份和还原(c#)

    本文将详细介绍使用C#编程语言实现完整的数据库备份和还原过程,适用于SQL Server 2005及以上版本。这个过程通常涉及数据库的完整备份、事务日志备份以及如何使用这些备份进行数据恢复。 首先,让我们理解什么是...

Global site tag (gtag.js) - Google Analytics