編寫 **C# Windows Service / 定時任務**,流程:
string sqlConn = "Server=...;Database=...;User=...;Pwd=...";
string accConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\data.accdb;";
using (var sql = new SqlConnection(sqlConn))
using (var acc = new OleDbConnection(accConn)) {
sql.Open(); acc.Open();
// 讀取 SQL Server
var dt = new DataTable();
new SqlDataAdapter("SELECT * FROM dbo.Material WHERE UpdateTime > @last", sql)
.SelectCommand.Parameters.AddWithValue("@last", lastSync).Fill(dt);
// 批量寫入 Access
using (var bulk = new OleDbCommand()) {
bulk.Connection = acc;
foreach (DataRow row in dt.Rows) {
bulk.CommandText = BuildInsertSql(row);
bulk.ExecuteNonQuery();
}
}
// 更新水位
SaveLastSync(DateTime.Now);
}