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#写的实现数据库备份与还原的工程(VS2008下可直接运行,低于08的版本可以拷贝代码实现,记得要在COM中添加SQLSMO引用,本例数据库为SuperMarket,请更改为你所需备份的数据库),个人特意将两种方法放在同一工程...
C# MySQL数据库批量备份还原工具是使用C#语言开发的一个数据库备份还原工具,主要用于对MySQL数据库进行批量备份和还原操作。该工具使用了Process类来操作cmd.exe,调用mysqldump.exe来执行备份和还原命令。 知识点...
总结起来,C#实现MySQL数据库的备份、还原和初始化主要涉及对数据库操作的封装,通过执行命令行工具(如`mysqldump`和`mysql`)来完成数据库的生命周期管理。理解这些基本操作对任何使用C#与MySQL交互的开发者来说都...
数据库备份和还原的类,连接数据函数需要自己编写
在IT行业中,数据库备份是确保数据安全和业务连续性的重要环节。C#作为.NET框架的主要编程语言,可以用于创建高效且用户友好的应用程序,包括带有进度条的数据库备份功能。以下将详细介绍如何利用C#实现这个功能,...
"C#数据库备份与还原"这个主题聚焦于如何利用C#编程语言来实现这两个功能。C#是一种广泛使用的面向对象的编程语言,尤其适合开发Windows应用程序,包括与数据库交互的应用。 1. **C#数据库连接**: 在C#中,我们...
总的来说,理解C#中如何利用SMO进行数据库备份和还原,以及在Web环境中如何实现这些操作,是提升开发技能的重要一步。这个过程涉及到数据库连接、SQL命令构造、异常处理和用户交互等多个方面,是.NET开发者必备的...
总结,C#数据库备份还原源代码实例是一个实用的工具,可以帮助开发者实现自动化备份和恢复流程。强制中断数据库MSSQL连接的功能则为处理紧急情况或优化资源利用提供了额外的支持。通过对这些知识点的理解和应用,IT...
以上内容只是一个基础的C#实现数据库备份和还原的概述。在实际项目中,可能还需要考虑更多的细节,如错误处理、日志记录、异步操作以及更复杂的备份策略(如增量备份、差异备份等)。对于大型企业级应用,可能还会...
C#可以借助MySQL的数据提供者(如MySql.Data.MySqlClient)来连接和操作MySQL数据库。要备份MySQL数据库,我们需要执行SQL的`mysqldump`命令,这是一个用于创建数据库备份的实用程序。在C#中,我们可以通过`Process`...
总的来说,这个项目提供了一个使用C#实现的数据库备份和恢复解决方案,适用于需要回溯操作的环境。通过自定义的代码,用户可以在Windows Forms界面中方便地执行这些操作,保证了数据的安全性和可恢复性。对于想要...
C#中进行SQL Server数据库备份通常涉及以下步骤: 1. 连接数据库:使用SqlConnection类建立到SQL Server实例的连接。 2. 构建备份命令:创建SqlCommand对象,并设置其CommandText属性为SQL备份语句,例如`BACKUP ...
用C#程序备份和还原数据库用C#程序备份和还原数据库用C#程序备份和还原数据库
根据给定的文件标题、描述、标签以及部分内容,我们可以总结出以下关于数据库备份与还原的知识点,特别是聚焦于使用C#进行SQL Server数据库的操作。 ### 数据库备份的重要性 数据库备份是确保数据安全的关键步骤,...
数据库备份和还原是数据库管理中的核心操作,对于数据的安全性和业务连续性至关重要。在C#环境中,我们可以利用SQL Server提供的API或ADO.NET等工具来实现这一功能。下面将详细介绍C#实现数据库备份和还原的相关知识...
c# ,winform, 数据库,备份,还原,sql server 2005 好的话给评个分数,谢谢了!好的话给评个分数,谢谢了 好的话给评个分数,谢谢了 好的话给评个分数,谢谢了 好的话给评个分数,谢谢了 好的话给评个分数,谢谢了
总之,使用C#和ASP.NET实现SQL Server数据库备份,主要涉及SMO库的使用,通过编写代码来配置备份类型、设备和选项,然后调用SqlBackup方法执行备份。在实际应用中,还需要考虑错误处理、日志记录、备份策略规划等...
1. 使用`mysqldump`生成数据库备份文件。 2. 在C#代码中执行系统命令以运行`mysqldump`。 3. 如果需要,可以使用`MySqlBulkLoader`或逐行执行SQL语句的方式还原数据库。 4. 确保处理异常并验证备份和还原操作的成功...
C# 数据库备份还原,备份,还原
本文将详细介绍使用C#编程语言实现完整的数据库备份和还原过程,适用于SQL Server 2005及以上版本。这个过程通常涉及数据库的完整备份、事务日志备份以及如何使用这些备份进行数据恢复。 首先,让我们理解什么是...