首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

自製 ORM 框架實戰測試:WinForm 介面操作與資料庫 CRUD 串接 (第 11 講下第 6 部分)

     編輯:關於C語言

UI 介面與事件處理

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 操作封裝為簡單方法呼叫,實體類別程式碼極簡單,適合程式碼產生器自動產生,後續資料庫結構變更僅需更新實體類別,降低開發維護成本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved