【问题标题】:Set database backup file on local machine在本地机器上设置数据库备份文件
【发布时间】:2018-09-05 19:14:21
【问题描述】:

可能重复:

How to create SQL Server 2008 database full backup programmatically in desired folder

我的计算机上有一个数据库 (SQL Server 2008 Express)。

我需要任何可用于使用 Visual Studio 2010 将数据库备份到文件的 C# 示例代码。

谢谢..

我将使用此代码连接数据库

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;
    }

【问题讨论】:

标签: c# sql-server-2008


【解决方案1】:

只需执行 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;
  }  

试试这段代码。

【讨论】:

  • 此代码不用于连接数据库。这是为了创建数据库的备份。为什么不发布一些 ccode,让我们为您提供更多帮助。
  • 我使用流式代码连接数据库 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);试试 { con.Open(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } 返回骗局;我可以使用你的 SQL 命令来设置备份使用类型连接
【解决方案2】:

我使用流式代码连接数据库

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 命令在类型连接时设置备份

【讨论】:

    【解决方案3】:

    这就是我所做的,它成功了!

    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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      相关资源
      最近更新 更多