c# - 如何在不使用 SMO 的情况下在 C# 中备份数据库 (SQL Server 2008)?

标签 c# sql-server database backup

我有这段代码,但它不起作用,但我不知道为什么?

try
{
   saveFileDialog1.Filter = "SQL Server database backup files|*.bak";
   saveFileDialog1.Title = "Database Backup";

   if (saveFileDialog1.ShowDialog() == DialogResult.OK)
   {
      SqlCommand bu2 = new SqlCommand();
      SqlConnection s = new SqlConnection("Data Source=M1-PC;Initial Catalog=master;Integrated Security=True;Pooling=False");

      bu2.CommandText = String.Format("BACKUP DATABASE LA TO DISK='{0}'", saveFileDialog1.FileName);

      s.Open();

      bu2.ExecuteNonQuery();
      s.Close();

      MessageBox.Show("ok");
   }
}
catch (Exception ex)
{
   MessageBox.Show(ex.ToString());
}

我得到这个错误:

alt text

问题是什么?

最佳答案

您需要将该 SqlConnection 对象分配给 SqlCommand - 试试这个代码:

if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
    string connStr = "Data Source=M1-PC;Initial Catalog=master;Integrated Security=True;Pooling=False";

    using(SqlConnection conn = new SqlConnection(connStr))
    {
       string sqlStmt = String.Format("BACKUP DATABASE LA TO DISK='{0}'", saveFileDialog1.FileName);

       using(SqlCommand bu2 = new SqlCommand(sqlStmt, conn))
       {
           conn.Open();
           bu2.ExecuteNonQuery();
           conn.Close();

           MessageBox.Show("ok");
       }
    }
}

关于c# - 如何在不使用 SMO 的情况下在 C# 中备份数据库 (SQL Server 2008)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2614469/

相关文章:

c# - 使用 c# 访问 youtube 数据 api 的最佳方法是什么

c# - ModelState.IsValid == false,为什么?

c# - 如何显示加载项的输出窗口?

sql - 统计在多个网站上订购的用户的订单数量

MySQL exclusion <> 仅在比较其他列时不伴随 OR 时才有效

php - 测验的数据库结构是什么样的?

c# - 检查指定日期何时发生的最佳方法

c# - 从字符串 C# asp.net-MVC 转换日期和/或时间时转换失败

mysql - 使用 setMaxResults 和 native 查询创建的 SQL 查询不正确

php - 将 div 位置和大小属性插入 MySQL 数据库。如何使用 PHP 收集信息?