大家知道用VC開發數據庫程序,一般有兩種選擇:ODBC或ADO。ODBC出現的較早,用的人也多。ADO是微軟正大力支持和發展的技術,致力於學習VC的程序員應該現在就學習這種技術。
在這個例字中我還是采用了自己更為熟悉的ODBC。程序的實現有兩個關鍵地方:一、ODBC兩個類的運用。二、LISTCONTROL控件的使用。程序的視圖用CRecordView類,具體配置可以參考源程序。程序的實現主要在視圖文件中完成,實現的功能有:增加記錄、刪除記錄、修改記錄、排序記錄、查尋記錄,並且在控件表格中直觀的顯示。本程序采用的是AECESS數據庫,當然也可采用ORACLE等其它數據庫。整個程序的界面簡潔、直觀(見下圖)。
下面介紹具體步驟:
首先根據數據庫的內容確定表格的樣式,這裡如下設計:
1.在視圖頭文件中給List Control控件加入Contrl 變量 m_ListCtrl。在實現文件的OnInitialUpdate()函數中加入如下語句:
//設表格表題和列的寬度
m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_ListCtrl.InsertColumn(0,_T("學號"),LVCFMT_IMAGE|LVCFMT_LEFT);
m_ListCtrl.InsertColumn(1,_T("姓名"));
m_ListCtrl.InsertColumn(2,_T("數學"));
m_ListCtrl.InsertColumn(3,_T("英語"));
int j;
for(j=0;j<4;j++)
{
m_ListCtrl.SetColumnWidth(j ,90);
}
這樣列表題就設置好,同時設置列的寬度。還要特別注意的一點,要在List Control控件的屬性頁Styles中設report屬性。因為程序一運行時,要求所有記錄都顯示出來所以接著增加了一個Show()函數,為了它的重用性,我對它進行了封裝。在後面的程序中大家可以看到它的好處。Show()函數如下:
int CLhwyView::Show()
{
int i=0;
m_pSet->MoveFirst();
do
{
CString s;
s.Format("%d",m_pSet->m_column1);
m_ListCtrl.InsertItem(i,s,0);
m_ListCtrl.SetItemText(i,1,m_pSet->m_column2);
s.Format("%d",m_pSet->m_column3);
m_ListCtrl.SetItemText(i,2,s);
s.Format("%d",m_pSet->m_column4);
m_ListCtrl.SetItemText(i,3,s);
i++;
m_pSet->MoveNext();