使用 C# 恢复数据库

2024-05-26

我正在尝试使用 Microsoft.SqlServer.Management.Smo 将数据库从一台服务器恢复到另一台服务器。问题是我不断收到错误消息,指出找不到 .MDF 文件。原因是它试图在 SQL 实例名称的数据文件夹中查找它的来源,而不是在另一个 SQL 实例的数据文件夹中查找。有没有一种方法可以告诉它在哪个文件夹中搜索 mdf,而不是假设它是标记到 BAK 文件的文件夹?这太令人沮丧了


看看这个article http://www.codeproject.com/KB/database/SQL_Server_2005_Database.aspx?display=Print作者:巴皮·M·艾哈迈德。它展示了恢复数据库文件的完整方法。这是它显示的方法:

public void RestoreDatabase(String databaseName, String filePath, 
       String serverName, String userName, String password, 
       String dataFilePath, String logFilePath)
{
    Restore sqlRestore = new Restore();

    BackupDeviceItem deviceItem = new BackupDeviceItem(filePath, DeviceType.File);
    sqlRestore.Devices.Add(deviceItem);
    sqlRestore.Database = databaseName;

    ServerConnection connection = new ServerConnection(serverName, userName, password);
    Server sqlServer = new Server(connection);

    Database db = sqlServer.Databases[databaseName];
    sqlRestore.Action = RestoreActionType.Database;
    String dataFileLocation = dataFilePath + databaseName + ".mdf";
    String logFileLocation = logFilePath + databaseName + "_Log.ldf";
    db = sqlServer.Databases[databaseName];
    RelocateFile rf = new RelocateFile(databaseName, dataFileLocation);

    sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName, dataFileLocation));
    sqlRestore.RelocateFiles.Add(new RelocateFile(databaseName+"_log", logFileLocation));
    sqlRestore.ReplaceDatabase = true;
    sqlRestore.Complete += new ServerMessageEventHandler(sqlRestore_Complete);
    sqlRestore.PercentCompleteNotification = 10;
    sqlRestore.PercentComplete += 
       new PercentCompleteEventHandler(sqlRestore_PercentComplete);

    sqlRestore.SqlRestore(sqlServer);
    db = sqlServer.Databases[databaseName];
    db.SetOnline();
    sqlServer.Refresh();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 C# 恢复数据库 的相关文章

  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • SQL不允许表中有重复记录

    如何使其不添加重复项 我想让它通过 ID 之外的所有其他列进行检查 我希望这个无效 ID col1 col2 col3 1 first middle last ID col1 col2 col3 2 first middle last 我希
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • git:检查标签,修改某些内容,然后再次标记它

    我觉得我应该知道这一点 但我很困惑 我在 github 上分叉了一个存储库 我需要的是签出一个标签 称为 v1 0 5 修改文件上的语句 使用名为 1 0 5 的新标签 不带 v 重新标记该状态 然后执行对 master 进行同样的更改 让
  • 使用 Apache CXF 更改 WSDL xsd:complexType 名称

    我使用 Apache CXF 发布 Web 服务 即时 生成 WSDL 这很好用 但我想更改生成类型的命名约定 由于服务客户端 C 基于 WSDL 生成代码 因此默认的 xsd complexType 命名会导致类型名称以小写字母开头 以下
  • 如何在产品listing页面显示产品详细描述?

    我想在产品列表页面上的简短描述后显示详细的产品描述 我正在做这个 但什么也没有出现 我也尝试过这个 Mage getModel catalog product gt load product gt getProductId gt getDe
  • Blade 如何处理脚本调用?

    大家好 我在脚本调用方面遇到问题 我在 Laravel 中使用 Blade 除了支持搜索和排序功能的脚本调用之外 一切都正常工作 这是我的层次结构和相应的相关代码 main blade php div class page containe
  • 即使 startService 不返回,peekService 也会返回 null

    我正在尝试使用 AndroidService from a BroadcastReceiver The Service生活在不同的应用程序中BroadcastReceiver 我的理解是 正确的方法是首先调用Context startSer
  • 如何使超类方法返回子类的实例

    我有一堂课叫Test和一个名为SubTest谁延伸Text 我想有一个方法Test将返回实例的类SubTest当接到电话时 我想做 SubTest test new SubTest setTest Hello setOtherTest Hi
  • Rspec : PG::ConnectionBad: PQsocket() 无法获取套接字描述符

    我运行了 rspec 大部分测试都失败了 我对他们遇到了同样的错误 即 Failure Error Unable to find matching line from backtrace ActiveRecord StatementInva
  • Apache Flink 动态设置 JVM_OPT env.java.opts

    是否可以设置自定义 JVM 选项env java opts提交作业时未在作业中指定conf flink conf yaml file 我问的原因是我想在 log4j 中使用一些自定义变量 我也在 YARN 上运行我的工作 我已经使用 CLI
  • 将 2 个不同表中的 2 个值相乘

    我正在尝试使用 SQL 将值 X 乘以值 Y 值 X 位于表 A 中 B 位于表 B 中 我找不到这个问题的答案 表交易 ID Transaction ID Total Amount 1 001 1200 2 002 1500 3 003
  • SHA-256 BigQuery 函数或 UDF

    有人有 UDF 或知道在 BigQuery 中支持 SHA 256 的计划吗 https cloud google com bigquery query reference syntax 16 https cloud google com
  • 在 firebase 函数中设置 dotenv

    我正在尝试将我制作的小型节点表达应用程序移动到 firebase 函数中 该文件有dotenv变量 早些时候我想如果我只是部署并依赖 dotenv 它会起作用 但那并没有发生 于是 我去了firebase的环境配置文章了解如何设置 env
  • 使用express/connect-redis在页面重新加载时抓取现有会话

    使用 connect express 和 socket io 我试图让我的应用程序在重新连接时获取会话详细信息 我的会话显然在客户端连接时工作 但如果我刷新浏览器上的页面 它会忘记所有内容 我的会话cookie肯定是一样的 所以不是那样的
  • 在更新面板中提交表单后运行javascript?

    这真让我抓狂 我在这里阅读了至少 5 个与我的问题密切相关的问题 可能还通过谷歌搜索阅读了 5 页左右的内 容 我就是不明白 我试图在用户填写 已提交注册 的表单后出现一个 jqueryui 对话框 然后重定向到另一个页面 但我一生都无法让
  • 如何处理 BrainTree 中的 Webhook

    我正在尝试使用 BrainTree webhooks 进行订阅交易 但无法让我的页面进行验证 来自脑树 https www braintree payments com docs php webhooks destination verif
  • 将屏幕从 Windows Phone 7 发送到 PC 的工具

    手机屏幕投射到电脑上用什么工具 我在演示文稿中看到过它 但在任何地方都找不到它 Thanks 这是目前仅由微软员工使用的内部工具 相机 投影仪是另一种选择
  • PHP 类扩展字符串变量

    是否可以声明一个类并让它扩展一个变量 class Child extends parentClass 是的 它是通过 eval 实现的 但不建议这样做
  • Java 正则表达式 电子邮件

    首先 我知道不建议使用正则表达式发送电子邮件 但我必须对此进行测试 我有这个正则表达式 b A Z0 9 A Z0 9 A Z 2 4 b 在Java中 我是这样做的 Pattern p Pattern compile b A Z0 9 A
  • 在plotly python中使用按钮过滤不同的数据

    我遵循 PythononToast的答案如何在使用 Python 中的 Plotly 创建的图中添加按钮或下拉菜单 https stackoverflow com questions 65710352 how can i add a but
  • Symfony:为 ManyToOne-OneToMany 关系嵌入表单集合

    我正在使用 Doctrine 和这三个 相关 实体运行 Symfony 2 3 出版物 Author and 作者发表 Both Author and 出版物具有多对一关系作者发表 所以它基本上是一个多对多关系Author and 出版物但
  • 使用 C# 恢复数据库

    我正在尝试使用 Microsoft SqlServer Management Smo 将数据库从一台服务器恢复到另一台服务器 问题是我不断收到错误消息 指出找不到 MDF 文件 原因是它试图在 SQL 实例名称的数据文件夹中查找它的来源 而