程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#發現之旅第十一講 使用反射和特性構造自己的ORM框架(下)(5)

C#發現之旅第十一講 使用反射和特性構造自己的ORM框架(下)(5)

編輯:關於C語言

這個類型的代碼很簡單,就是定義一個個和數據庫字段對應的公開屬性而已,因此很容易使用各種代碼生成器來生成這樣的代碼。這個DB_Employees類型中使用了BindTable和BindFIEld特性來標記對象及其屬性綁定了數據庫表和字段上,這裡的EmployeeID屬性標記為關鍵字段,因此框架程序修改和刪除數據庫記錄是會依據EmployeeID來生成查詢條件。

我們開發了一個簡單的WinForm程序來測試我們建立的ORM框架。其用戶界面為

查詢數據

用戶界面上的“刷新”按鈕就是讀取數據庫,然後刷新員工名稱列表,其主要代碼為

private void cmdRefresh_Click(object sender, System.EventArgs e)
{
using( MyORMFramework myWork = this.CreateFramework())
{
RefreshList( myWork );
}
}
private void RefreshList( MyORMFramework myWork )
{
object[] obJS = myWork.ReadAllObjects(typeof( DB_Employees ));
System.Collections.ArrayList list = new ArrayList();
list.AddRange( obJS );
this.lstName.DataSource = list ;
this.lstName.DisplayMember = "FullName";
}
/// <summary>
/// 連接數據庫,創建ORM框架對象
/// </summary>
/// <returns>ORM框架對象</returns>
private MyORMFramework CreateFramework()
{
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.IO.Path.Combine( System.Windows.Forms.Application.StartupPath , "demomdb.mdb" );
conn.Open();
return new MyORMFramework( conn );
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved