How to Create a backup SQL Server in C#
By FoxLearn 7/16/2024 8:51:10 AM 8.74K
Here’s a step-by-step guide on how to backup SQL Server in C#.
Open your Visual Studio, then click New Project, then select Visual C# on the left, then Windows and then select Windows Forms Application. Name your project "BackupDatabase" and then click OK
Drag and drop the TextBox, Label, Button, Progress Bar controls from the Visual Studio toolbox onto your form designer, then design your form as shown below.
Right-click on your project in Solution Explorer, then add references to Microsoft.SqlServer.ConnectionInfo, Microsoft.SqlServer.ConnectionInfoExtended, Microsoft.SqlServer.Smo, Microsoft.SqlServer.SmoExtended
Add code to handle your form
using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo;
Adding a click event handler to the Backup button allows you to backup sql database in c#.
// sql database c# backup private void btnBackup_Click(object sender, EventArgs e) { progressBar.Value = 0; try { //Init connect to sql database Server dbServer = new Server(new ServerConnection(txtServer.Text, txtUsername.Text, txtPassword.Text)); // Define a new backup operation Backup dbBackup = new Backup() { Action = BackupActionType.Database, Database = txtDatabase.Text }; // Set the backup device to a file dbBackup.Devices.AddDevice(@"C:\Data\Northwind.bak", DeviceType.File); dbBackup.Initialize = true; dbBackup.PercentComplete += DbBackup_PercentComplete; dbBackup.Complete += DbBackup_Complete; // Perform the backup dbBackup.SqlBackupAsync(dbServer); } catch (Exception ex) { MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
Adding code to handle Complete event handler allows you to update the backup status.
private void DbBackup_Complete(object sender, ServerMessageEventArgs e) { if (e.Error != null) { //Update status with multiple threads lblStatus.Invoke((MethodInvoker)delegate { lblStatus.Text = e.Error.Message; }); } }
Adding code to handle PercentComplete event handler allows you to update the progress bar with the percent complete.
private void DbBackup_PercentComplete(object sender, PercentCompleteEventArgs e) { //Update percentage, progressbar progressBar.Invoke((MethodInvoker)delegate { progressBar.Value = e.Percent; progressBar.Update(); }); lblPercent.Invoke((MethodInvoker)delegate { lblPercent.Text = $"{e.Percent}%"; }); }
Through this example, you can easily create a Windows Forms application that backs up a SQL Server database using C#.
VIDEO TUTORIAL