Bestin P S Ответов: 1

Sqlserver2014 принимая резервную копию приложений Windows с#


Я пытаюсь создать резервную копию своей базы данных приложений windows, написав программу.Моя проблема в том, что я могу сохранить файл .bak.Если мы создадим резервную копию файла в папку, то мы не сможем выбрать тот же путь к папке.Это действительно заметно, если можно создать папку с уникальным идентификатором в каждом случае создания резервного процесса.


Мой LOC-это
private void button3_Click(object sender, EventArgs e)
{
    try
    {
        System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder(ConnectionStringTwo);



        string serverName = builder.DataSource;
        string DbName = builder.InitialCatalog;
        string dbuserName = builder.UserID;
        string dbPassword = builder.Password;

        if (DestPath == "" || DbName == "")
        {
            MessageBox.Show("Try to select Database and Destination Folder !");
        }
        else
        {

            string databaseName = DbName;//dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].FormattedValue.ToString();

            //Define a Backup object variable.
            Backup sqlBackup = new Backup();

            ////Specify the type of backup, the description, the name, and the database to be backed up.
            sqlBackup.Action = BackupActionType.Database;
            sqlBackup.BackupSetDescription = "BackUp of:" + databaseName + "on" + DateTime.Now.ToShortDateString();
            sqlBackup.BackupSetName = "FullBackUp";
            sqlBackup.Database = databaseName;

            ////Declare a BackupDeviceItem
            string destinationPath = DestPath;
            string backupfileName = DbName+".bak";
            //string backupfileName = DbName+DateTime.Now.Day + DateTime.Now.TimeOfDay + ".bak";
            BackupDeviceItem deviceItem = new BackupDeviceItem(destinationPath + "\\" + backupfileName, DeviceType.File);
            ////Define Server connection

            //ServerConnection connection = new ServerConnection(frm.serverName, frm.userName, frm.password);
            ServerConnection connection = new ServerConnection(serverName, dbuserName, dbPassword);
            ////To Avoid TimeOut Exception
            Server sqlServer = new Server(connection);
            sqlServer.ConnectionContext.StatementTimeout = 60 * 60;
            Database db = sqlServer.Databases[databaseName];

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

            ////Add the device to the Backup object.
            sqlBackup.Devices.Add(deviceItem);
            ////Set the Incremental property to False to specify that this is a full database backup.
            sqlBackup.Incremental = false;

            sqlBackup.ExpirationDate = DateTime.Now.AddDays(3);
            ////Specify that the log must be truncated after the backup is complete.
            sqlBackup.LogTruncation = BackupTruncateLogType.Truncate;

            sqlBackup.FormatMedia = false;
            ////Run SqlBackup to perform the full database backup on the instance of SQL Server.
            sqlBackup.SqlBackup(sqlServer);
            ////Remove the backup device from the Backup object.
            sqlBackup.Devices.Remove(deviceItem);
            toolStripStatusLabel1.Text = "Successful backup is created!";
        }
    }
    catch (Exception ex)
    {
        toolStripStatusLabel1.Text = ex.Message;
        // MessageBox.Show(ex.Message);
    }
}


Что я уже пробовал:

при создании резервной копии до того же места
sqlBackup.SqlBackup(sqlServer);gives me an exception of "Back Up failed for server 'Outlet-PC'"

Wendelius

Можете ли вы опубликовать точное сообщение об исключении вместе с внутренними исключениями (если таковые имеются)

Bestin P S

Исключение возникло при выполнении инструкции Transact-SQl или пакета-вот что я получил

Wendelius

Содержит ли исключение внутреннее исключение?

1 Ответов

Рейтинг:
1

OriginalGriff

Я знаю, что вы написали код, но ..... поможет ли это?
Резервное копирование базы данных SQL на языке C#[^]


Bestin P S

да, я могу создать резервную копию на этом LOC, но, знаете ли, когда мы пытаемся сохранить одно и то же местоположение папки, она получает исключение.

OriginalGriff

Какое исключение?