WinForm 介面包含「重新整理」、「新增」、「修改」、「刪除」按鈕與員工清單 ListBox、明細文字方塊。
private void cmdRefresh_Click(object sender, EventArgs e)
{
using (MyORMFramework orm = CreateFramework())
RefreshList(orm);
}
private void RefreshList(MyORMFramework orm)
{
object[] objs = orm.ReadAllObjects(typeof(DB_Employees));
ArrayList list = new ArrayList(); list.AddRange(objs);
lstName.DataSource = list; lstName.DisplayMember = "FullName";
}
private MyORMFramework CreateFramework()
{
var conn = new OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Path.Combine(Application.StartupPath, "demomdb.mdb"));
conn.Open();
return new MyORMFramework(conn);
}
private void lstName_SelectedIndexChanged(object sender, EventArgs e)
{
DB_Employees emp = lstName.SelectedItem as DB_Employees;
if (emp != null)
{
txtID.Text = emp.EmployeeID.ToString();
txtName.Text = emp.FullName;
txtTitleOfCourtesy.Text = emp.TitleOfCourtesy;
txtAddress.Text = emp.Address;
txtNotes.Text = emp.Notes;
}
else ClearFields();
}
private void cmdInsert_Click(object sender, EventArgs e)
{
try
{
using (dlgRecord dlg = new dlgRecord())
{
dlg.Employee = new DB_Employees();
if (dlg.ShowDialog(this) == DialogResult.OK)
using (MyORMFramework orm = CreateFramework())
if (orm.InsertObject(dlg.Employee) > 0) RefreshList(orm);
}
}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
}
ORM 框架將 CRUD 操作封裝為簡單方法呼叫,實體類別程式碼極簡單,適合程式碼產生器自動產生,後續資料庫結構變更僅需更新實體類別,降低開發維護成本。