我想使用C#代码还原SQL Server数据库

问题描述 投票:0回答:1

我想选择还原路径,然后选择我的数据库备份文件并通过单击Visual Studio 2019中的按钮来还原它。

我有一些下面已经编写的代码,但是出现错误。

string connection = ConfigurationManager.ConnectionStrings["dbx"].ConnectionString;

SqlConnection con = new SqlConnection(connection);
con.Open();

String sqlquery = "Use Master ALTER DATABASE databasename SET OFFLINE WITH ROLLBACK IMMEDIATE RESTORE DATABASE FHMTailorDB FROM DISK ='" + RestoreTextBox.Text + "' ALTER DATABASE databasename SET ONLINE WITH ROLLBACK IMMEDIATE";

SqlCommand cmd = new SqlCommand(sqlquery, con);
cmd.ExecuteNonQuery();

con.Close();
con.Dispose();

lblError.Text = "Database Restore successfully";

错误:

System.Data.SqlClient.SqlException:'用户无权更改数据库'databasename',数据库不存在,或者数据库未处于允许访问检查的状态。

ALTER DATABASE语句失败。

对文件“ F:\ FHMTailorManager \ FHMTailorDB.mdf”的目录查找失败,出现操作系统错误2(系统找不到指定的文件。)。

文件'FHMTailorDB'无法还原到'F:\ FHMTailorManager \ FHMTailorDB.mdf'。使用WITH MOVE标识文件的有效位置。

对文件“ F:\ FHMTailorManager \ FHMTailorDB_log.ldf”的目录查找失败,由于操作系统错误2(系统找不到指定的文件。)。

文件'FHMTailorDB_log'无法还原到'F:\ FHMTailorManager \ FHMTailorDB_log.ldf'。使用WITH MOVE标识文件的有效位置。在计划RESTORE语句时发现了问题。先前的消息提供了详细信息。

RESTORE DATABASE异常终止。

用户无权更改数据库'数据库名',该数据库不存在,或者该数据库未处于允许访问检查的状态。

ALTER DATABASE语句失败。

将数据库上下文更改为'master'。'

c# sql-server smo
1个回答
0
投票

您有两个问题

© www.soinside.com 2019 - 2024. All rights reserved.