none
Como fazer backup e restauração via código de um bd em .mdf, em uma aplicação Windows Forms? RRS feed

  • Pergunta

  • Pessoal tenho pouca experiência ainda. Estou precisando de fazer a opção de backup e restauração de todos dos dados de um BD em .mdf em minha aplicação, sendo que o usuário que vai fazer o backup.

    Já fiz muitas pesquisas e testei vários códigos, mas nenhum funcionou como preciso. Se alguém já passou por isso aí me ajude.

    Obrigado.

    segunda-feira, 25 de fevereiro de 2013 18:40

Todas as Respostas

  • Backup

    private void btnBackUp_Click(object sender, EventArgs e)
    {
        bool bBackUpStatus = true;
     
        Cursor.Current = Cursors.WaitCursor; 
     
         if (Directory.Exists(@"c:\SQLBackup"))
            {
                if (File.Exists(@"c:\SQLBackup\wcBackUp1.bak"))
                {
                    if (MessageBox.Show(@"Do you want to replace it?", "Back", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        File.Delete(@"c:\SQLBackup\wcBackUp1.bak");
                    }
                    else
                        bBackUpStatus = false;
                }
            }
            else
                Directory.CreateDirectory(@"c:\SQLBackup");
     
            if (bFileStatus)
            {
                //Connect to DB
                SqlConnection connect;
                string con = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyFirstDatabase.mdf;Integrated Security=True;User Instance=True;";
                connect = new SqlConnection(con);
                connect.Open();
                //----------------------------------------------------------------------------------------------------
     
                //Execute SQL---------------
                SqlCommand command;
                command = new SqlCommand(@"backup database dbWiseCodes to disk ='c:\SQLBackup\wcBackUp1.bak' with init,stats=10", connect);
                command.ExecuteNonQuery();
                //-------------------------------------------------------------------------------------------------------------------------------
     
                connect.Close();
     
                MessageBox.Show("The support of the database was successfully performed", "Back", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
    }

    Restauração

    private void btnRestore_Click(object sender, EventArgs e)
    {
     
        Cursor.Current = Cursors.WaitCursor;
     
        try
        {
            if (File.Exists(@"c:\SQLBackup\wcBackUp1.bak"))
            {
                if (MessageBox.Show("Are you sure you restore?", "Back", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    //Connect SQL-----------
                    SqlConnection connect;
                    string con = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyFirstDatabase.mdf;Integrated Security=True;User Instance=True;";
                    connect = new SqlConnection(con);
                    connect.Open();
                    //-----------------------------------------------------------------------------------------
     
                    //Excute SQL----------------
                    SqlCommand command;
              command = new SqlCommand("use master", connect);
                command.ExecuteNonQuery();
                    command = new SqlCommand(@"restore database dbWiseCodes01 from disk = 'c:\SQLBackup\wcBackUp1.bak'", connect);
                    command.ExecuteNonQuery();
                    //--------------------------------------------------------------------------------------------------------
                    connect.Close();
     
                    MessageBox.Show("Has been restored database", "Restoration", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
                MessageBox.Show(@"Do not make any endorsement above (or is not in the correct path)", "Restoration", MessageBoxButtons.OK, MessageBoxIcon.Information);
     
        }
        catch (Exception exp)
        {
            MessageBox.Show(exp.Message);
        }
     
    }


    Leonardo Garcia
    pensouweb@hotmail.com



    quarta-feira, 27 de fevereiro de 2013 08:05