C# winform sqlite数据库文件备份和恢复
1.窗体设计:2个button(1个备份(BtnDataBackup),1个恢复(BtnDataRecovery)),1个label(labMsg);1个openFileDialog1(打开选择文件对话窗口);
2:代码
using System.IO;
private void BtnDataBackup_Click(object sender, EventArgs e) {//数据备份按钮 string dbFilePath = Application.StartupPath + @"\data\orders.db"; string dbNewFilePath=Application.StartupPath + @"\data\backup\orders"+ DateTime.Now.ToString("yyyyMMddHHmmss") + ".db"; string dirPath=Application.StartupPath + @"\data\backup"; try { if (!Directory.Exists(dirPath)) {//创建backup文件夹 Directory.CreateDirectory(dirPath); } File.Copy(dbFilePath, dbNewFilePath);//拷贝文件 if (File.Exists(dbNewFilePath)) { labMsg.Text="数据库文件备份成功,文件路径: " + dbNewFilePath; } } catch { labMsg.Text="数据备份失败,备份的同时,不要进行其他操作!"; } } private void BtnDataRecovery_Click(object sender, EventArgs e) {//数据恢复按钮 string backUpDir = Application.StartupPath + @"\data\backup"; string dbFilePath = Application.StartupPath + @"\data\orders.db"; //选择文件 openFileDialog1.Filter = "db文件|*.db";//筛选文件类型 openFileDialog1.InitialDirectory = backUpDir; if (openFileDialog1.ShowDialog() == DialogResult.OK) {//恢复[覆盖]文件 File.Copy(openFileDialog1.FileName, dbFilePath, true);//拷贝文件,存在则覆盖(也可以弹messagebox,让用户选择是否覆盖) if (File.GetLastWriteTime(openFileDialog1.FileName).ToString("yyyyMMddHHmmss") == File.GetLastWriteTime(dbFilePath).ToString("yyyyMMddHHmmss")) {//通过比较2个文件的修改日期,进行判断 labMsg.Text = "数据恢复成功。"; } else { labMsg.Text = "数据恢复失败,请手动拷贝文件进行恢复。"; } } openFileDialog1.Dispose(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App