winform數(shù)據(jù)庫(kù)備份壓縮和還原實(shí)現(xiàn)_第1頁(yè)
winform數(shù)據(jù)庫(kù)備份壓縮和還原實(shí)現(xiàn)_第2頁(yè)
winform數(shù)據(jù)庫(kù)備份壓縮和還原實(shí)現(xiàn)_第3頁(yè)
winform數(shù)據(jù)庫(kù)備份壓縮和還原實(shí)現(xiàn)_第4頁(yè)
winform數(shù)據(jù)庫(kù)備份壓縮和還原實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、首先要引入sqlserver的一個(gè)dllSQLDMO。SQLDMO.dll是隨SQLServer2000一起發(fā)布的。SQLDMO.dll自身是一個(gè)COM對(duì)象.路徑:C:ProgramFilesMicrosoftSQLServer80ToolsBinn/數(shù)據(jù)庫(kù)服務(wù)器名stringServerName=System.Configuration.ConfigurationSettings.AppSettingsServerName;/數(shù)據(jù)庫(kù)用戶名stringUserName=System.Configuration.ConfigurationSettings.AppSettingsUserName;

2、/密碼stringPassword=System.Configuration.ConfigurationSettings.AppSettingsPassword;/數(shù)據(jù)庫(kù)名stringstrDbName=System.Configuration.ConfigurationSettings.AppSettingsstrDbName;/備份后的文件保存路徑(.bak,不包括文件名stringFilePathBak=System.Configuration.ConfigurationSettings.AppSettingsFilePathBak;/壓縮文件保存的路徑,這里不包括壓縮后的文件名stri

3、ngFilePathRar=System.Configuration.ConfigurationSettings.AppSettingsFilePathRar;publicfrmDataBaseBackup(InitializeComponent(;this.skinEngine1.SkinFile=FormValue.SetSkin.ToString(;privatevoidfrmDataBaseBackup_Load(objectsender,EventArgse/顯示數(shù)據(jù)庫(kù)信息到界面txtServerName.Text=ServerName;txtDataBase.Text=strDbN

4、ame;textBox3.Text=UserName;textBox4.Text=Password;/備份數(shù)據(jù)庫(kù)/ 服務(wù)器名/ 登錄賬號(hào)/ 密碼/ 待備份的數(shù)據(jù)庫(kù)名/ 備份后的文件保存路徑/ publicboolBackUPDB(stringServerName,stringUserName,stringPassword,stringstrDbName,stringFilePathBakSQLDMO.SQLServersvr=newSQLDMO.SQLServerClass(;SQLDMO.Backupbak=newSQLDMO.BackupClass(;trysvr.LoginSecure=

5、false;svr.Connect(ServerName,UserName,Password;bak.Action=0;/SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;bak.Initialize=true;/備份后的文件保存路徑+文件名(F:databackfireweb20100810.bak)bak.Files=FilePathBak+strDbName+System.DateTime.Now.ToString(yyyyMMdd+.bak;bak.Database=strDbName;bak.BackupSetName=strDbName

6、;bak.BackupSetDescription=數(shù)據(jù)庫(kù)備份;bak.SQLBackup(svr;returntrue;catch(Exceptionerrthrow(newException(備份數(shù)據(jù)庫(kù)失敗+err.Message;finallysvr.DisConnect(;/壓縮指定文件到指定文件夾/ 被壓縮的文件的路徑,文件本身在方法中寫明,/因?yàn)槲募僧?dāng)前時(shí)間判斷/ 壓縮后的保存路徑/ /publicboolrar(stringpath,stringrarPath/boolflag=false;/System.Diagnostics.ProcessPc1=newSystem.D

7、iagnostics.Process(;/Pc1.StartInfo.FileName=Winrar.exe;/Pc1.StartInfo.CreateNoWindow=false;/stringfileName=strDbName+/System.DateTime.Now.ToString(yyyyMMdd+.bak;/stringrarFileName=strDbName+/System.DateTime.Now.ToString(yyyyMMdd+.rar;/path+=fileName;/解壓前的文件路徑+文件名/rarPath+=rarFileName;/解壓后的路徑+文件名/-ep

8、表示:從名稱中排除路徑,即壓縮時(shí)不帶各層目錄/Pc1.StartInfo.Arguments=a-ep+rarPath+path;/Pc1.Start(;/intiExitCode=Pc1.ExitCode;/if(iExitCode=0/flag=true;/else/flag=false;/Pc1.Kill(;/Pc1.Close(;/Pc1.Dispose(;/returnflag;/由于每天備份一次,所以要把多余的備份文件和壓縮文件刪除,只保留最新的5個(gè)/publicvoiddel(/刪除bak文件intcount1=0;ArrayListal1=newArrayList(;Direc

9、toryInfodiPathBak=newDirectoryInfo(FilePathBak;foreach(FileInfofiindiPathBak.GetFiles(/每個(gè)備份的bak的文件名長(zhǎng)度一定會(huì)大于12(20100808.bak)if(fi.Name.Length12-8.Equals(strDbName&fi.Extension.Equals(.bakcount1+;al1.Add(fi.Name;if(count15/刪除第一個(gè)(由于GetFiles(方法按名稱升序排序取文件,即刪除最早的)stringfilename=al10.ToString(;File.Delete(d

10、iPathBak+filename;al1.RemoveAt(0;count1-;/刪除rar文件/intcount=0;/ArrayListal=newArrayList(;/DirectoryInfodiPathRar=newDirectoryInfo(FilePathRar;/foreach(FileInfofiindiPathRar.GetFiles(/每個(gè)備份的bak的文件名長(zhǎng)度一定會(huì)大于12(20100808.bak)/if(fi.Name.Length12/8.Equals(strDbName&fi.Extension.Equals(.rar/count+;/al.Add(fi.

11、Name;/if(count5/刪除第一個(gè)(由于GetFiles(方法按名稱升序排序取文件,即刪除最早的)/stringfilename=al0.ToString(;/File.Delete(diPathRar+filename;/al.RemoveAt(0;/count-;/publicvoidDataBackup(boolbackup=BackUPDB(ServerName,UserName,Password,strDbName,FilePathBak;if(backup/rar(FilePathBak,FilePathRar;del(;privatevoidbtnBackup_Click

12、(objectsender,EventArgseDataBackup(;this.Close(;/這是最徹底的退出方式,不管什么線程都被強(qiáng)制退出,把程序結(jié)束的很干凈。/System.Environment.Exit(0;/還原數(shù)據(jù)庫(kù)privatevoidbtnRestore_Click(objectsender,EventArgseSQLDMO.SQLServersvr=newSQLDMO.SQLServerClass(;SQLDMO.Restorerest=newSQLDMO.RestoreClass(;trysvr.LoginSecure=false;svr.Connect(ServerName,UserName,Password;rest.Action=SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;FileInfofi=newFileInfo(lblPath.Text;MessageBox.Show(備份文件不存在!請(qǐng)先備份或者檢查文件路徑是否正確.;return;/還原路徑rest.Files=lblP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論