0

私は3層のアプリケーションを持っています。C# コードを使用して SQL Server データベースをバックアップしようとしています。選択したフォルダー パスを UI から渡し、データ レイヤーでコードを実行します。選択したデータベースの場所で、エラーが発生します。

このリクエストのデータを取得できませんでした。接続タイプが無効です。
Microsoft.SqlServer.Management.Smo.Enumerator.Process (オブジェクト connectionInfo、要求要求)
で Microsoft.SqlServer.Management.Smo.ExecutionManager.GetEnumeratorData (要求要求) で Microsoft.SqlServer.Management.Smo.SqlSmoObject.GetDbCollat​​ion
(文字列 dbname )
Microsoft.SqlServer.Management.Smo.SqlSmoObject.GetDbComparer(Boolean inServer)
で Microsoft.SqlServer.Management.Smo.SqlSmoObject.InitializeStringComparer() で

1 つのレイヤーでサンプル プロジェクトを作成し、コードを実行します。それは正常に動作します。問題が見つかりませんでした

次のようにコードを使用しました。

public void BackupData(string filePath)
    {
        Backup sqlBackup = new Backup();

        sqlBackup.Action = BackupActionType.Database;
        sqlBackup.BackupSetDescription = "ArchiveDataBase:" +
                                         DateTime.Now.ToShortDateString();
        string fileName = "\\ArchiveDataBase.bak";
        sqlBackup.BackupSetName = "Archive";

        sqlBackup.Database = "SanasaLibrarySystem";

        BackupDeviceItem deviceItem = new BackupDeviceItem(filePath + fileName, DeviceType.File);
        DataConnection dataConnection = new DataConnection();
        ServerConnection connection = new ServerConnection(dataConnection.DataBaseConnection);
        Server sqlServer = new Server(connection);

        Database db = sqlServer.Databases["SanasaLibrarySystem"];

        sqlBackup.Initialize = true;
        sqlBackup.Checksum = true;
        sqlBackup.ContinueAfterError = true;

        sqlBackup.Devices.Add(deviceItem);
        sqlBackup.Incremental = false;

        sqlBackup.ExpirationDate = DateTime.Now.AddDays(3);
        sqlBackup.LogTruncation = BackupTruncateLogType.Truncate;

        sqlBackup.FormatMedia = false;

        sqlBackup.SqlBackup(sqlServer);

    }
4

0 に答える 0