Sae*_*han 5 c# sql-server visual-studio-2010 database-backups sql-server-2008-r2
场景:
我正在使用SQL Server 2008 R2数据库服务器处理C#windows窗体应用程序.所有事情都进展顺利,即使我能够创建数据库备份但是当我以编程方式恢复它时它会给我错误"RESTORE无法处理数据库"Test_DB '因为它正在被这个会话使用.建议在执行此操作时使用master数据库.RESTORE DATABASE异常终止. 这是我的备份和恢复程序
// back up code
try
{
SaveFileDialog sd = new SaveFileDialog();
sd.Filter = "SQL Server database backup files|*.bak";
sd.Title = "Create Database Backup";
if (sd.ShowDialog() == DialogResult.OK)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString))
{
string sqlStmt = string.Format("backup database Test_DB to disk='{0}'", sd.FileName);
using (SqlCommand bu2 = new SqlCommand(sqlStmt, conn))
{
conn.Open();
bu2.ExecuteNonQuery();
conn.Close();
DevComponents.DotNetBar.MessageBoxEx.Show("Backup Created Sucessfully");
}
}
}
}
catch (Exception)
{
MessageBox.Show("Backup Not Created");
}
// Restore backup Code
try
{
OpenFileDialog od = new OpenFileDialog();
od.Filter = "SQL Server database Restore files|*.bak";
od.Title = "Restore Database Backup";
if (od.ShowDialog() == DialogResult.OK)
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString))
{
string sqlStmt = string.Format("Restore database Test_DB from disk='{0}'", od.FileName);
using (SqlCommand bu2 = new SqlCommand(sqlStmt, conn))
{
conn.Open();
bu2.ExecuteNonQuery();
conn.Close();
DevComponents.DotNetBar.MessageBoxEx.Show("Database Retored Sucessfully", "Success Message!");
}
}
}
}
catch (Exception)
{
MessageBox.Show("Database didn't Restore","Error Message!");
}
Run Code Online (Sandbox Code Playgroud)
我感谢任何机构提供的任何帮助.谢谢.
错误消息是不言自明的.您需要更改连接字符串,而不是initial catalog=test_db
它initial_catalog=master
.或者在运行还原之前将数据库上下文更改为master.
归档时间: |
|
查看次数: |
5828 次 |
最近记录: |