C#/SQL:通过复制和替换数据库文件来备份和恢复?首先,这是一个共享知识而不是一个问题。我在使用备份和恢复命令的默认方法创建数据库备份和恢复时遇到了一些问题,所以我通过操作数据库文件并在需要时恢复它们来开发自己的方法。我会分享它来回答以帮助他人。场景:首先,您必须知道在复制或替换数据库文件之前,您必须使数据库脱机并在完成后将其恢复联机。以上是C#学习教程:C#/SQL:通过复制替换数据库文件来备份和恢复?如果分享的内容对你有用,需要进一步了解C#学习教程,希望你多多关注——1)使用的方法//fullPath:你的数据库的路径//executablePath:路径对于您的exe文件夹voidsetFullPath(){stringexecutable=System.Reflection.Assembly.GetExecutingAssembly().Location;executablePath=(System.IO.Path.GetDirectoryName(executable));fullPath=executablePath+"\Database.mdf";}voidtakeOffline(stringfullPath){homeObject.connection.Open();homeObject.cmd.CommandText="更改数据库["+fullPath+"]设置离线";homeObject.cmd.ExecuteNonQuery();homeObject.cmd.Clone();}voidbringOnline(stringfullPath){homeObject.cmd.CommandText="ALTERDATABASE["+fullPath+"]SETONLINE";;homeObject.cmd.ExecuteNonQuery();homeObject.cmd.Clone();homeObject.connection.Close();}2)复制数据库文件/备份boolgetDatabaseCopy(){try{//takeOffline(fullPath);//复制database.mdfcopyDBMDF();//复制database_log.ldfcopyDB_logLDF();//bringOnline(fullPath);返回真;}catch{//}返回假;}//txtPath.txt://保存数据库文件的文件夹位置voidcopyDBMDF(){stringfileName="Database.mdf";字符串sourceFile=fullPath;stringtargetPath=txtPath.Text;//使用Path类来操作文件和目录路径。字符串destFile=System.IO.Path.Combine(targetPath,fileName);//将文件夹的内容复制到新位置://如有必要,创建新的目标文件夹。如果(!System.IO.Directory.Exists(targetPath)){System.IO.Directory.CreateDirectory(targetPath);}//将文件复制到另一个位置并//覆盖目标文件(如果它已经存在)。System.IO.File.Copy(sourceFile,destFile,true);}voidcopyDB_logLDF(){stringfileName="Database_log.ldf";字符串sourcePath=executablePath;stringtargetPath=txtPath.Text;//使用Path类来操作文件和目录路径。字符串sourceFile=System.IO.Path.Combine(sourcePath,文件名);字符串destFile=System.IO.Path.Combine(targetPath,fileName);//将文件夹的内容复制到新位置://如有必要,创建新的目标文件夹。如果(!System.IO.Directory.Exists(targetPath)){System.IO.Directory.CreateDirectory(targetPath);}//将文件复制到另一个位置并//覆盖目标文件(如果它已经存在)。System.IO.File.Copy(sourceFile,destFile,true);}3)用你复制/还原的文件替换当前数据库文件boolrestoreTheBackup(){try{//takeOffline(fullPath);//加载.mdfloadMDFDatabaseFile();//加载_log.ldfloadLDFDatabaseFile();//bringOnline(fullPath);返回真;}catch{//}返回假;}//txtPath.txt://从中获取数据库文件以替换为当前文件的位置。voidloadLDFDatabaseFile(){stringfileName="Database_log.ldf";字符串targetPath=executablePath;stringsourcePath=txtPath.Text;//使用Path类来操作文件和目录路径。字符串sourceFile=System.IO.Path.Combine(sourcePath,fileName);字符串destFile=System.IO.Path.Combine(targetPath,fileName);//将文件夹的内容复制到新位置://如有必要,创建新的目标文件夹。如果(!System.IO.Directory.Exists(targetPath)){System.IO.Directory.CreateDirectory(targetPath);}//将文件复制到另一个位置并//覆盖目标文件(如果它已经存在)。System.IO.File.Copy(sourceFile,destFile,true);}voidloadMDFDatabaseFile(){stringfileName="Database.mdf";字符串targetPath=executablePath;stringsourcePath=txtPath.Text;//使用Path类来操作文件和目录路径。字符串sourceFile=System.IO.Path.Combine(sourcePath,fileName);字符串destFile=System.IO.Path.Combine(targetPath,fileName);//将文件夹的内容复制到新位置://如有必要,创建新的目标文件夹。如果(!System.IO.Directory.Exists(targetPath)){System.IO.Directory.CreateDirectory(targetPath);}//到将文件复制到另一个位置并//覆盖目标文件(如果它已经存在)。System.IO.File.Copy(sourceFile,destFile,true);}本文收集自网络,不代表立场。如涉及侵权,请点击维权联系管理员删除,如有转载请注明出处:
