如何使用C#(windows应用程序)将.bak文件保存在特定文件夹中

本文关键字:存在 保存 文件 文件夹 bak 何使用 windows 应用程序 | 更新日期: 2023-09-27 18:22:35

在我的程序中,我使用C#保存Sql备份文件,在这个程序中,当我点击按钮"SAVEDIALOG"打开时,但我想将此文件保存在特定文件夹或特定路径中。

也就是说,我不想允许用户将这个文件保存在除特定路径之外的任何地方。

请帮我一下,下面是我保存文件的点击事件的编码。注意:其桌面应用程序使用C#,SQL server 2008。

private void btnCreate_Click(object sender, EventArgs e)
{
// If there was a SQL connection created
if (srvSql != null)
{
// If the user has chosen a path where to save the backup file
if (saveBackupDialog.ShowDialog() == DialogResult.OK)
{
// Create a new backup operation
Backup bkpDatabase = new Backup();
// Set the backup type to a database backup
bkpDatabase.Action = BackupActionType.Database;
// Set the database that we want to perform a backup on
bkpDatabase.Database = cmbDatabase.SelectedItem.ToString();
// Set the backup device to a file
BackupDeviceItem bkpDevice = new BackupDeviceItem(saveBackupDialog.FileName, DeviceType.File);
// Add the backup device to the backup
bkpDatabase.Devices.Add(bkpDevice);
// Perform the backup
bkpDatabase.SqlBackup(srvSql);
}
}
else
{
// There was no connection established; probably the Connect button was not clicked
MessageBox.Show("A connection to a SQL server was not established.", "Not Connected to Server", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}

如何使用C#(windows应用程序)将.bak文件保存在特定文件夹中

您可以在需要的地方编写您的patth并直接保存,而无需询问。您需要删除保存文件对话框。

只需创建一个类似的字符串

string myPath = " a path whic you want to save  ";   

//string myPath = @"C:/backups/mybackup.sql";   

你可以在上面看到固定代码


   private void btnCreate_Click(object sender, EventArgs e)
    {
    // If there was a SQL connection created
    if (srvSql != null)
    {
    // If the user has chosen a path where to save the backup file


    // Create a new backup operation
    Backup bkpDatabase = new Backup();
// Set the backup type to a database backup
bkpDatabase.Action = BackupActionType.Database;
// Set the database that we want to perform a backup on
bkpDatabase.Database = cmbDatabase.SelectedItem.ToString();
// Set the backup device to a file
string myPath = " a path whic you want to save  ";   

//string myPath = @"C:/backups/mybackup.sql";   

BackupDeviceItem bkpDevice = new BackupDeviceItem(myPath , DeviceType.File);
// Add the backup device to the backup
bkpDatabase.Devices.Add(bkpDevice);
// Perform the backup
bkpDatabase.SqlBackup(srvSql);

}
else
{
// There was no connection established; probably the Connect button was not clicked
MessageBox.Show("A connection to a SQL server was not established.", "Not Connected to Server", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
 }

使用此代码,此处DatabaseBackupFilePath将是保存备份文件的完整.bak文件路径。

 using System;
    using System.Configuration;
    using System.IO;
    using System.Data.SqlClient;
    using Microsoft.SqlServer.Management.Smo;
    using Microsoft.SqlServer.Management.Common;
public bool BackupDataBase()
        {
            bool isDatabackedUp = true;
            try
            {
                Backup sqlBackup = new Backup();
                if (null != sqlBackup)
                {
                    //Set the Database backup type
                    sqlBackup.Action = BackupActionType.Database;
                    //Set database backup description to be kept in the back up log table
                    sqlBackup.BackupSetDescription = Constants.DatabaseBackupDescription +
                                                     DateTime.Now.ToShortDateString();
                    sqlBackup.BackupSetName = Constants.DatabaseBackupSetName;
                    //Set the backup file path and backup type
                    BackupDeviceItem deviceItem = new BackupDeviceItem(DatabaseBackupFilePath, DeviceType.File);
                    ServerConnection connection = new ServerConnection(this.BackupConnection);
                    //Set the database name to backup
                    sqlBackup.Database = LocalDatabaseName;
                    sqlBackup.Initialize = true;
                    sqlBackup.Checksum = true;
                    sqlBackup.ContinueAfterError = true;
                    //Set the file details to save the backup
                    sqlBackup.Devices.Add(deviceItem);
                    sqlBackup.Incremental = false;
                    sqlBackup.LogTruncation = BackupTruncateLogType.Truncate;
                    sqlBackup.FormatMedia = false;
                    //Intiate the database backup
                    Server sqlServer = new Server(connection);
                    sqlBackup.SqlBackup(sqlServer);
                }
                return isDatabackedUp;
            }
            catch (Exception ex)
            {
                return false;
            }
        }