[C#] Hướng dẫn Restore Database Sqlserver with Progress bar sử dụng thư viện SQL SMO
Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn sử dụng thư viện Sql SMO của Microsoft cung cấp để thực hiện khôi phục dữ liệu Restore database Sqlserver và hiển thị phần trăm hoàn thành lên Progressbar C#. Trong lập trình ứng dụng C#, ...
Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn sử dụng thư viện Sql SMO của Microsoft cung cấp để thực hiện khôi phục dữ liệu Restore database Sqlserver và hiển thị phần trăm hoàn thành lên Progressbar C#.
Trong lập trình ứng dụng C#, các ứng dụng quản lý, chúng ta thường viết thêm một module để thực hiện công việc backup và restore database hàng ngày.
Và trong bài viết này, các bạn có thể sử dụng thể thực hiện công việc khôi phục dữ liệu cho ứng dụng của mình.
Giao diện demo ứng dụng Restore Database C#:
Đầu tiên, các bạn cần import thư viện sqlserver sql smo vào, các bạn có thể download ứng dụng của mình bên dưới cuối bài để import thư viện vào nhé.
Source code C# Restore Database Sqlserver:
using Microsoft.SqlServer.Management.Common; using Microsoft.SqlServer.Management.Smo; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace RestoreDatabaseSQL { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btn_restore_Click(object sender, EventArgs e) { progressBar.Value = 0; try { Server dbServer = new Server(new ServerConnection(txt_server.Text, txt_username.Text, txt_password.Text)); Restore dbRestore = new Restore() { Database = txt_database.Text, Action = RestoreActionType.Database, ReplaceDatabase = true, NoRecovery = false }; dbRestore.Devices.AddDevice(txt_filebackup.Text, DeviceType.File); dbRestore.PercentComplete += DbRestore_PercentComplete; dbRestore.Complete += DbRestore_Complete; dbRestore.SqlRestoreAsync(dbServer); } catch (Exception ex) { lbl_status.Text = ex.Message; } } private void DbRestore_Complete(object sender, ServerMessageEventArgs e) { if (e.Error != null) { lbl_percent.BeginInvoke(new Action(() => { lbl_percent.Text = e.Error.Message; })); } } private void DbRestore_PercentComplete(object sender, PercentCompleteEventArgs e) { progressBar.BeginInvoke(new Action(() => { progressBar.Value = e.Percent; progressBar.Update(); })); lbl_percent.BeginInvoke(new Action(() => { lbl_percent.Text = $"{e.Percent}%"; })); } } }
HAPPY CODING
Tham khảo bài viết từ youtube FoxLearn
DOWNLOAD SOURCE