我正在尝试使用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'不存在上下文
有谁可以帮助您?
似乎您为Firebird ADO.net提供程序的版本2复制了此example。
有两个问题:
[您错过了复制该示例中的ServiceOutput
方法的方法
static void ServiceOutput(object sender, ServiceOutputEventArgs e)
{
Console.WriteLine(e.Message);
}
该示例适用于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")
。