程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> VC++開發個人事務管理信息系統

VC++開發個人事務管理信息系統

編輯:C++入門知識

VC++開發個人事務管理信息系統


工具

http://blog.csdn.net/bcbobo21cn/article/details/44200205

demo工程

http://pan.baidu.com/s/1slaISnr

1 開發個人事務管理信息系統;從網上下一個源碼來改;

來源

http://www.newxing.com/Code/VC/data/4004.html

該源碼運行如下,

\

2 運行,出現下圖錯誤;可知是ODBC訪問數據庫,非ADO;

\

3 查看 連接 菜單的代碼,

\

 

\

是db.Open一句報的錯;

4 建立ODBC數據源,

\

發現沒有access驅動;

\

原因參閱,

http://blog.csdn.net/wang379275614/article/details/7803576

5 進到如下目錄再配置ODBC,

\

 

選擇mdb數據庫;配置成功;

\

 

\

6 運行,登錄;

密碼不對;但是輸的是對的;看下代碼;

if(strPasswd == CCrypt::Encrypt(m_strPasswd, 123) &&

此句可能存在問題,因為由數據庫取到strPasswd,由更新數據變量得到界面輸入的內容到m_strPasswd,這兩個值實際是一個;加密後不會等於自身;

CCrypt::Encrypt()此函數的功能尚未搞清;下次再弄;

\

 

\

下斷點可看到字符串加密後的值;

先注釋掉加密代碼;

7 運行起來;

\

 

8 修改其菜單為個人事務管理信息系統的菜單;

\

 

\

 

9 在資源-字符串表中,修改主框標題

\

 

10 打開數據庫表;

工具:

http://blog.csdn.net/bcbobo21cn/article/details/51000041

\

修改其JOB表內容為設備類別表內容;設備類別即個人物品類別,服裝、電子設備等類;

11 插入DataGrid控件,

\

 

\

出錯,參閱,

http://blog.csdn.net/zhongjling/article/details/7787626

12 添加設備類別管理對話框,插入DataGrid控件,做一個界面如下;

\

 

13 新建對話框需要新加一個類

\

14 選擇DataGrid控件需要的類;

\

15 如下圖代碼,打開記錄集並綁定;

\

出錯;如圖;研究之後,原因在於,如上代碼實際是用於ADO方式訪問數據庫的DataGrid綁定的;ODBC方式,目前所有網上資料都是,一行行添加數據的;如

http://www.vckbase.com/index.php/wv/248

等;

 

更換DataGrid控件為ListCtrl

\

 

按網上相關資料添加如下代碼;

BOOL shblbDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here
m_list3.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_list3.InsertColumn(0,_T("類別編號"),LVCFMT_IMAGE|LVCFMT_LEFT);
m_list3.InsertColumn(1,_T("類別名稱"));
int j;
for(j=0;j<2;j++)
{
m_list3.SetColumnWidth(j ,180);
}


CRecordset rs(&db); // 數據集
CString str1,str2;
rs.Open(CRecordset::forwardOnly, "select * from JOB");


int i=0;
//rs.MoveFirst();
do
{
//m_list3.InsertItem(i,rs.m_column1,0);
rs.GetFieldValue("CODE", str1);
rs.GetFieldValue("DESCRIPTION", str2);
m_list3.InsertItem(i, str1,0);// 插入行
m_list3.SetItemText(i, 1, str2);//設置其它列數據


i++;
rs.MoveNext();
} while(!rs.IsEOF());
//rs.MoveFirst();

//m_shblbdlg.SetRefDataSource((LPUNKNOWN)rs.GetRecordset());
//m_shblbdlg.SetRefDataSource((LPUNKNOWN)rs.Requery());

return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}

數據庫記錄已經取到;但是插入數據到ListCtrl存在一點問題;只顯示了一個字段;並且沒有顯示列頭;

 

\

需要在控件屬性中選中 列表 樣式,

\

記錄才會按行排列;

\

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved