在C#中,要進行Access數據庫的數據遷移,你可以使用OLEDB連接到Access數據庫,然后使用SQL語句來查詢、插入、更新或刪除數據。以下是一個簡單的示例,展示了如何將數據從一個Access數據庫遷移到另一個Access數據庫。
首先,確保已經安裝了適當版本的Microsoft Access Database Engine。根據你的操作系統和Office版本,你需要安裝32位或64位的引擎。下載地址:https://www.microsoft.com/en-us/download/details.aspx?id=54920
在Visual Studio中創建一個新的C#控制臺應用程序項目。
添加以下命名空間引用:
using System;
using System.Data;
using System.Data.OleDb;
class Program
{
static void Main(string[] args)
{
// 源數據庫文件路徑
string sourceFilePath = @"C:\path\to\source\database.mdb";
// 目標數據庫文件路徑
string targetFilePath = @"C:\path\to\target\database.mdb";
// 源數據庫連接字符串
string sourceConnectionString = $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={sourceFilePath};Persist Security Info=False;";
// 目標數據庫連接字符串
string targetConnectionString = $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={targetFilePath};Persist Security Info=False;";
// 定義要遷移的表名
string tableName = "TableName";
// 查詢源數據庫中的數據
DataTable dataToMigrate = new DataTable();
using (OleDbConnection sourceConnection = new OleDbConnection(sourceConnectionString))
{
sourceConnection.Open();
using (OleDbCommand command = new OleDbCommand($"SELECT * FROM {tableName}", sourceConnection))
{
using (OleDbDataReader reader = command.ExecuteReader())
{
dataToMigrate.Load(reader);
}
}
}
// 將數據插入到目標數據庫中
using (OleDbConnection targetConnection = new OleDbConnection(targetConnectionString))
{
targetConnection.Open();
using (OleDbCommand command = new OleDbCommand())
{
command.Connection = targetConnection;
foreach (DataRow row in dataToMigrate.Rows)
{
command.CommandText = $"INSERT INTO {tableName} (Column1, Column2, Column3) VALUES (@Column1, @Column2, @Column3)";
command.Parameters.Clear();
command.Parameters.AddWithValue("@Column1", row["Column1"]);
command.Parameters.AddWithValue("@Column2", row["Column2"]);
command.Parameters.AddWithValue("@Column3", row["Column3"]);
command.ExecuteNonQuery();
}
}
}
Console.WriteLine("數據遷移完成!");
Console.ReadLine();
}
}
請注意,你需要根據實際情況修改源數據庫和目標數據庫的文件路徑、表名和列名。此外,這個示例僅用于演示目的,實際應用中可能需要進行錯誤處理和優化。