Search code examples
c#sql-serverdatabasebackup

How to backup database (SQL Server 2008) in C# without using SMO?


I have this code and it is not working but I don't why?

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

and I get this error :

alt text

What is the problem?


Solution

  • You need to assign that SqlConnection object to the SqlCommand - try this code:

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