VC++开发个人事务管理信息系统
工具
http://blog.csdn.net/bcbobo21cn/article/details/44200205
demoproject
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 执行。登录;
password不正确。可是输的是对的。看下代码;
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存在一点问题。仅仅显示了一个字段。而且没有显示列头;
须要在控件属性中选中 列表 样式,
记录才会按行排列;