zoukankan      html  css  js  c++  java
  • 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 + @"dataorders.db";
                string dbNewFilePath=Application.StartupPath + @"dataackuporders"+ DateTime.Now.ToString("yyyyMMddHHmmss") + ".db";
                string dirPath=Application.StartupPath + @"dataackup";
                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 + @"dataackup";
                string dbFilePath = Application.StartupPath + @"dataorders.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();
            }
  • 相关阅读:
    Python学习笔记:List类型所有方法汇总
    Python学习笔记:String类型所有方法汇总
    制作“铜墙铁壁”一样的比特币冷钱包的完整流程详解!!
    jpa教程+ 常见的jpa报错以及解决方式
    Hibernate之mappedBy与@JoinColumn
    什么是JPA?Java Persistence API简介
    一文搞懂并发和并行
    清华大学操作系统【mark下】
    一文足以了解什么是 Java 中的锁.
    JDK8日常开发系列:Consumer详解
  • 原文地址:https://www.cnblogs.com/nb08611033/p/8984256.html
Copyright © 2011-2022 走看看