[英]Sql Server 2008 R2 Database backup and restore functionality by C# Windows Application
I develop a windows application for a small shop for generating invoices. 我为一家小商店开发了Windows应用程序以生成发票。 Now I want to give a functionality for the user to make backup of each day database on a button click from the windows application. 现在,我想为用户提供一个功能,使用户可以通过单击Windows应用程序中的按钮来备份每天的数据库。 Also he should be able to restore the database from these backup. 他还应该能够从这些备份中还原数据库。
Please help me i searched many topics but not works. 请帮助我,我搜索了很多主题,但是没有用。 Thanks.. 谢谢..
You have to use the using Microsoft.SqlServer.Management.Smo
name space and use the BackUp
Method provided. 您必须使用using Microsoft.SqlServer.Management.Smo
命名空间,并使用提供的BackUp
方法。 It has various backup options. 它具有各种备份选项。 Please See this link 请看这个链接
using Microsoft.SqlServer; using Microsoft.SqlServer.Management.Smo; using Microsoft.SqlServer.Management.Common; using System.Data.SqlClient; using System.Configuration; public void BackupDatabase(string BackUpLocation, string BackUpFileName, string DatabaseName, string ServerName) { DatabaseName = "[" + DatabaseName + "]"; string fileUNQ = DateTime.Now.Day.ToString() + "_" + DateTime.Now.Month.ToString() + "_" + DateTime.Now.Year.ToString() +"_"+ DateTime.Now.Hour.ToString()+ DateTime.Now .Minute .ToString () + "_" + DateTime .Now .Second .ToString () ; BackUpFileName = BackUpFileName + fileUNQ + ".bak"; string SQLBackUp = @"BACKUP DATABASE " + DatabaseName + " TO DISK = '" + BackUpLocation + @"\" + BackUpFileName + @"'"; string svr = "Server=" + ServerName + ";Database=" + DatabaseName + ";Integrated Security=True"; SqlConnection cnBk = new SqlConnection(svr); SqlCommand cmdBkUp = new SqlCommand(SQLBackUp, cnBk); try { cnBk.Open(); cmdBkUp.ExecuteNonQuery(); //MessageBox.Show("Done"); MessageBox.Show(SQLBackUp + " ######## Server name " + ServerName + " Database " + DatabaseName + " successfully backed up to " + BackUpLocation + @"\" + BackUpFileName + "\n\nBackUp Date : " + DateTime.Now.ToString()); } catch (Exception ex) { MessageBox.Show(ex.ToString()); //MessageBox.Show(SQLBackUp + " ######## Server name " + ServerName + " Database " + DatabaseName + " successfully backed up to " + BackUpLocation + @"\" + BackUpFileName + "\n Back Up Date : " + DateTime.Now.ToString()); } finally { if (cnBk.State == ConnectionState.Open) { cnBk .Close(); } } }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.