示範程式涵蓋連線建立、資料重讀、新增/刪除/修改記錄、列表選取同步顯示細節等完整 CRUD 操作:
private MyFastORMFramework CreateFramework() {
var conn = new OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Path.Combine(Application.StartupPath, "demomdb.mdb"));
conn.Open();
return new MyFastORMFramework(conn);
}
// 重讀清單
private void RefreshList(MyFastORMFramework myWork) {
var objs = myWork.ReadAllObjects(typeof(DB_Employees));
var list = new ArrayList(); list.AddRange(objs);
lstName.DataSource = list; lstName.DisplayMember = "FullName";
}
// 新增
private void cmdInsert_Click(...) {
using (var dlg = new dlgRecord { Employe = new DB_Employees() })
if (dlg.ShowDialog() == DialogResult.OK)
using (var fw = CreateFramework())
if (fw.InsertObject(dlg.Employe) > 0) RefreshList(fw);
}
// 刪除
private void cmdDelete_Click(...) {
var obj = lstName.SelectedItem as DB_Employees;
if (obj != null && MessageBox.Show(...) == DialogResult.Yes)
using (var fw = CreateFramework()) { fw.DeleteObject(obj); RefreshList(fw); }
}
// 修改
private void cmdEdit_Click(...) {
var obj = lstName.SelectedItem as DB_Employees;
if (obj != null)
using (var dlg = new dlgRecord { Employe = obj, txtID = { ReadOnly = true } })
if (dlg.ShowDialog() == DialogResult.OK)
using (var fw = CreateFramework())
if (fw.UpdateObject(obj) > 0) RefreshList(fw);
}
框架極輕量:僅需將 MyFastORMFramework.cs、BindTableAttribute、BindFieldAttribute 複製至專案,或編譯為 DLL 供 VB.NET 等其他 .NET 語言呼叫。本課結合反射與動態編譯,實現靈活高效的 ORM 框架,展現此技術組合的強大潛力。