溫馨提示×

在C#中如何實現(xiàn)對Access數(shù)據(jù)庫的備份

c#
小樊
95
2024-09-11 01:24:27
欄目: 編程語言

在C#中,可以使用OLEDB連接到Access數(shù)據(jù)庫并執(zhí)行SQL命令來實現(xiàn)備份

  1. 首先,確保已經(jīng)安裝了適當(dāng)版本的Microsoft Access Database Engine。根據(jù)你的操作系統(tǒng)和Access數(shù)據(jù)庫版本,你需要安裝32位或64位的引擎。下載地址:https://www.microsoft.com/en-us/download/details.aspx?id=54920

  2. 在C#項目中添加對System.Data.OleDb的引用。

  3. 使用以下代碼實現(xiàn)Access數(shù)據(jù)庫備份:

using System;
using System.Data.OleDb;

namespace AccessBackup
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceFilePath = @"C:\path\to\your\source.accdb";
            string backupFilePath = @"C:\path\to\your\backup.accdb";

            try
            {
                BackupAccessDatabase(sourceFilePath, backupFilePath);
                Console.WriteLine("Access數(shù)據(jù)庫備份成功!");
            }
            catch (Exception ex)
            {
                Console.WriteLine("備份過程中出現(xiàn)錯誤: " + ex.Message);
            }
        }

        public static void BackupAccessDatabase(string sourceFilePath, string backupFilePath)
        {
            // 創(chuàng)建OLEDB連接字符串
            string connectionString = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={sourceFilePath};Persist Security Info=False;";

            // 創(chuàng)建OLEDB連接
            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                // 打開連接
                connection.Open();

                // 創(chuàng)建備份數(shù)據(jù)庫的SQL命令
                string sql = $"BACKUP DATABASE TO '{backupFilePath}'";

                // 創(chuàng)建OLEDB命令
                using (OleDbCommand command = new OleDbCommand(sql, connection))
                {
                    // 執(zhí)行命令
                    command.ExecuteNonQuery();
                }

                // 關(guān)閉連接
                connection.Close();
            }
        }
    }
}

sourceFilePath變量設(shè)置為你的Access數(shù)據(jù)庫文件路徑,將backupFilePath變量設(shè)置為備份文件的路徑。運行此代碼后,源數(shù)據(jù)庫將被備份到指定的備份文件中。

注意:這個方法僅適用于Access 2007及更高版本(.accdb文件)。如果你使用的是Access 2003(.mdb文件),請將連接字符串中的Provider值更改為Microsoft.Jet.OLEDB.4.0。

0