1
Answer

Database Backup in C#

M Nasir Uddin

M Nasir Uddin

13y
11.9k
1

Hi everyone,

I have developed a desktop application. I have created a menu item to click for backup database from MS SQL Server 2005. This is why I have created a method to perform the operation. But the method is not working well. There's something wrong in the code which I cannot recognize. Please help me to find the problem and solution as well. The method code is given bellow:

public void BackupDatabase(String databaseName, String destinationPath)

        {

            try

            {               

                Backup sqlBackup = new Backup();

                sqlBackup.Action = BackupActionType.Database;

                sqlBackup.BackupSetDescription = "ArchiveDataBase:" + DateTime.Now.ToShortDateString();

                sqlBackup.BackupSetName = "Archive";

                sqlBackup.Database = databaseName;

 

                BackupDeviceItem deviceItem = new BackupDeviceItem(destinationPath, DeviceType.File);

                SqlConnection sqlCon = new SqlConnection(GenericDataAccess.GetConnectionString());

                ServerConnection connection = new ServerConnection(sqlCon);

 

                Server sqlServer = new Server(connection);

                Database db = sqlServer.Databases[databaseName];

                sqlServer.Databases.Add(db);               

 

                sqlBackup.Initialize = true;

                sqlBackup.Checksum = true;

                sqlBackup.ContinueAfterError = true;

 

                sqlBackup.Devices.Add(deviceItem);

                sqlBackup.Incremental = false;               

 

                sqlBackup.ExpirationDate = DateTime.Now.AddDays(3);

                sqlBackup.LogTruncation = BackupTruncateLogType.Truncate;

 

                sqlBackup.FormatMedia = false;

                sqlBackup.SqlBackup(sqlServer);

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message + "\n"  + ex.StackTrace);

            }

        }

And the click event from where I am calling the method is also given:

private void backupMnuItem_Click(object sender, EventArgs e)

{

            BackupData_Bl backup = new BackupData_Bl();

            backup.BackupDatabase("CFM", "D:\\TEMP");

}   

 

For your information (it might help you to find the problem) I have first create my database using SQL Server Management Studio. Then I've move the database from sql server installation location to my project directory under a folder named DB. After that I have attached the database using SQL Server Management Studio.

 

Answers (1)