使用c#获取问题的sqlserver备份

时间:2013-03-04 09:28:54

标签: c# sql-server-2008-r2 database-backups

我想使用 C#代码创建特定数据库的备份,为此我使用以下代码。

代码

       Console.WriteLine("Backup manager");

        Backup bkpDBFull = new Backup();

        bkpDBFull.Action = BackupActionType.Database;

        bkpDBFull.Database = "SampleDB";

        bkpDBFull.Devices.AddDevice(@"D:\Temp\Back\fulBak.bak", DeviceType.File);
        bkpDBFull.BackupSetName = "Database backup";
        bkpDBFull.BackupSetDescription = "Code backup";
        bkpDBFull.Initialize = false;

        bkpDBFull.PercentComplete += CompletionStatusInPercent;
        bkpDBFull.Complete += Backup_Completed;

        Server MyServer = new Server("Data Source=.;Initial Catalog=SampleDB;User ID=user;Password=pass");

        bkpDBFull.SqlBackup(MyServer);

这两个事件正在发生。

CompletionStatusInPercent

    private static void CompletionStatusInPercent(object sender, PercentCompleteEventArgs args)
    {
        Console.Clear();
        Console.WriteLine("Percent completed: {0}%.", args.Percent);
    }

Backup_Completed

    private static void Backup_Completed(object sender, ServerMessageEventArgs args)
    {
        Console.WriteLine("Hurray...Backup completed.");
        Console.WriteLine(args.Error.Message);
    }

在整个代码中,它在下面的代码中只有一个问题

问题代码

        Server MyServer = new Server("Data Source=.;Initial Catalog=SampleDB;User ID=user;Password=pass");

我想我错误地把sqlserver的名字放了。

我需要一个解决方法,我该如何解决这个问题。

2 个答案:

答案 0 :(得分:1)

你混淆了构造函数。新服务器的参数可以是服务器的名称(字符串),也可以是Microsoft.SqlServer.Management.Common.ServerConnection的实例 smo名称空间中的类。它的构造函数将一个连接字符串作为参数。

答案 1 :(得分:0)

在这里,Tony Hopkinson我做了更多研究并提出了解决方案......

我只需使用以下代码简单删除有问题的代码 ...

        SqlConnection con = new SqlConnection(@"Integrated Security=SSPI; Data Source=.");
        ServerConnection sc = new ServerConnection(con);
        Server MyServer = new Server(sc);

所以,我希望这对许多其他人有用......