使用Firebird软件包进行备份的问题

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

我正在尝试使用firebird软件包使用firebird数据库开发备份,但是它给我一个错误。

        FbConnectionStringBuilder cs = new FbConnectionStringBuilder();
        cs.UserID = "SYSDBA";
        cs.Password = "masterkey";
        cs.Database = "C:\\Develop\\Stamps\\DB\\Database.fdb";

        FbBackup backupSvc = new FbBackup();

        backupSvc.ConnectionString = cs.ToString();
        backupSvc.BackupFiles.Add(new FbBackupFile(@"C:\\Develop\\Stamps\\DB\\Database.fbk", 2048));
        backupSvc.Verbose = true;

        backupSvc.Options = FbBackupFlags.IgnoreLimbo;
        backupSvc.ServiceOutput += new ServiceOutputEventHandler(ServiceOutput);

        backupSvc.Execute();

我不知道为什么我不能编译以下语句:backupSvc.ServiceOutput += new ServiceOutputEventHandler(ServiceOutput);

错误是:

错误CS0246类型或名称空间名称'ServiceOutputEventHandler'找不到(您是否缺少using指令或程序集参考?)

错误CS0103当前名称'ServiceOutput'不存在上下文

有谁可以帮助您?

c# .net backup firebird
1个回答
0
投票

似乎您为Firebird ADO.net提供程序的版本2复制了此example

有两个问题:

  1. [您错过了复制该示例中的ServiceOutput方法的方法

    static void ServiceOutput(object sender, ServiceOutputEventArgs e)
    {
        Console.WriteLine(e.Message);
    }
    
  2. 该示例适用于Firebird ADO.net提供程序的较旧版本,并且不再适用于最新版本,因为Firebird ADO.net提供程序中不再存在ServiceOutputEventHandler,因为不再需要该类型的对象在C#中。

    解决方案是换行

    backupSvc.ServiceOutput += new ServiceOutputEventHandler(ServiceOutput);
    

    to

    backupSvc.ServiceOutput += ServiceOutput;
    

顺便说一句,您可以将new FbBackupFile(@"D:\Temp\Database.fbk", 2048)更改为new FbBackupFile(@"D:\Temp\Database.fbk")

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