該按鈕的點擊事件處理中,首先調用CreateFramework函數連接數據庫,創建一個ORM框架對象的實例,然後調用RefreshList函數來刷新列表。
RefreshList函數中,首先調用ORM框架的ReadAllObjects函數獲得數據庫中所有的類型為DB_Employees的對象,ReadAllObjects函數內部調用了ReadObjects函數。程序獲得一個對象數組後放置到一個ArrayList中,然後設置列表框控件的數據源和顯示字段名稱,這樣就刷新了員工名稱列表框的內容了。
用戶點擊員工名稱列表框的某個姓名後就會在用戶界面的右邊顯示該員工的詳細信息,其處理過程的代碼為
private void lstName_SelectedIndExchanged(object sender, System.EventArgs e)
{
DB_Employees obj = lstName.SelectedItem as DB_Employees ;
if( obj != null )
{
this.txtID.Text = obj.EmployeeID.ToString() ;
this.txtName.Text = obj.FullName ;
this.txtTitleOfCourtesy.Text = obj.TitleOfCourtesy ;
this.txtAddress.Text = obj.Address ;
this.txtNotes.Text = obj.Notes ;
}
else
{
this.txtID.Text = "";
this.txtName.Text = "";
this.txtTitleOfCourtesy.Text = "";
this.txtNotes.Text = "" ;
this.txtAddress.Text = "";
}
}
這個過程也很簡單,用戶刷新員工列表框後,該列表框的列表內容都是DB_Employees類型,我們就獲得當前的員工信息對象,然後一個個設置右邊的文本框的內容為各個屬性值就可以了。
新增數據
我們點擊“新增”按鈕就會向數據庫新增一條記錄,其主要代碼為
private void cmdInsert_Click(object sender, System.EventArgs e)
{
try
{
using( dlgRecord dlg = new dlgRecord())
{
dlg.Employe = new DB_Employees();
if( dlg.ShowDialog( this ) == DialogResult.OK )
{
using( MyORMFramework myWork = this.CreateFramework())
{
if( myWork.InsertObject( dlg.Employe ) > 0 )
{
RefreshList( myWork );
}
}
}
}
}
catch( Exception ext )
{
MessageBox.Show( ext.ToString());
}
}