簡體   English   中英

在本地計算機上設置數據庫備份文件

[英]Set database backup file on local machine

可能的重復:

如何在所需的文件夾中以編程方式創建SQL Server 2008數據庫完全備份

我的計算機上有一個數據庫(SQL Server 2008 Express)。

我需要C#中的任何示例代碼,我可以使用Visual Studio 2010將數據庫備份到文件。

謝謝..

我將使用此代碼連接數據庫

public SqlConnection SqlSaverConn()
    {
        string path = Application.StartupPath + "\\";
        String conStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename="+ path +"SMS_DB.mdf;Integrated Security=True;User Instance=True";
        SqlConnection con = new SqlConnection(conStr);
        try
        {
            con.Open();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
        return con;
    }

只需執行SQL Server命令

BACKUP DATABASE database_name TO DISK='d:\path\to\backup\file\on\the\server.bak' 

來自你的程序

編輯

public SqlConnection SqlSaverConn()      
{
      string path = Application.StartupPath + "\\";
      String conStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename="+ path +"SMS_DB.mdf;
                        Integrated Security=True; User Instance=True";
      SqlConnection con = new SqlConnection(conStr);
      try
      {
          con.Open();
          SqlCommand command;
          command = new SqlCommand(@"backup database SMS_DB.mdf to disk ='" + path + "\\" + name, con);
          command.ExecuteNonQuery(); 
          MessageBox.Show("Backup Created."); 
      }
      catch (Exception ex)
      {
          MessageBox.Show(ex.ToString());
      }
      return con;
  }  

試試這個代碼。

我使用流動代碼連接數據庫

public SqlConnection SqlSaverConn()
{
    string path = Application.StartupPath + "\\";
    String conStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename="+ path +"SMS_DB.mdf;Integrated Security=True;User Instance=True";
    SqlConnection con = new SqlConnection(conStr);
    try
    {
        con.Open();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
    return con;
}

我可以使用您的SQL命令在類型連接上設置備份

這就是我所做的和它的工作!

private void BackupButtonClick(object sender, RoutedEventArgs e)
{
    // FILE NAME WITH DATE DISTICNTION
    string fileName = string.Format("SchoolBackup_{0}.bak", DateTime.Now.ToString("yyyy_MM_dd_h_mm_tt"));
    try
    {
        // YOUR SEREVER OR MACHINE NAME
        Server dbServer = new Server (new ServerConnection("DESKTOP"));
        Microsoft.SqlServer.Management.Smo.Backup dbBackup = new Microsoft.SqlServer.Management.Smo.Backup()
        {
            Action = BackupActionType.Database, 
            Database = "School"
        };

        dbBackup.Devices.AddDevice(@backupDirectory() +"\\"+ fileName, DeviceType.File);
        dbBackup.Initialize = true;
        dbBackup.SqlBackupAsync(dbServer);


        MessageBox.Show("Backup", "Backup Completed!");
    }
    catch(Exception err)
    {
        System.Windows.MessageBox.Show(err.ToString());
    }
}


// THE DIRECTOTRY YOU WANT TO SAVE IN
public string backupDirectory()
{
    using (var dialog = new FolderBrowserDialog())
    {
        var result = dialog.ShowDialog();
        return dialog.SelectedPath;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM