首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想使用C#代码还原Server数据库

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

Stack Overflow用户
提问于 2019-10-02 16:39:52
回答 1查看 851关注 0票数 0

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

我有一些我已经写过的代码,但是我得到了一个错误。

代码语言:javascript
复制
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语句失败。 由于操作系统错误2(系统找不到指定的文件),文件"F:\FHMTailorManager\FHMTailorDB.mdf“的目录查找失败。 文件“FHMTailorDB”无法还原到“F:\FHMTailorManager\FHMTailorDB.mdf”。使用“移动”标识文件的有效位置。 由于操作系统错误2(系统找不到指定的文件),文件"F:\FHMTailorManager\FHMTailorDB_log.ldf“的目录查找失败。 文件'FHMTailorDB_log‘不能还原到'F:\FHMTailorManager\FHMTailorDB_log.ldf’。使用“移动”标识文件的有效位置。在规划RESTORE语句时发现了问题。以前的消息提供了详细信息。 还原数据库正在异常终止。 用户没有更改数据库“数据库名称”的权限,数据库不存在,或者数据库处于允许访问检查的状态。 ALTER语句失败。 将数据库上下文更改为“主”。

EN

回答 1

Stack Overflow用户

发布于 2019-10-02 18:43:22

你有两个问题

第一个是您的连接字符串提供的凭据,它没有足够的权限来完成将数据库脱机的任务。

第二个问题是,您试图从客户端PC-a和服务器端的文件系统中选择MDF/LDF文件,不知道也没有权限访问该文件夹。

所以,我的回答是,你需要尝试完全不同的东西。

试着用SMO。在互联网上有一篇文章温和地向读者介绍SMO。

本文指出了GitHub上的解决方案,它包含了所需的一切。

它意味着一组用.NET ( C# )编写的自动化过程,用于备份、恢复等。

所以,试试这个用Server管理对象框架编程Server

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58205771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档