我是mfc的新手,最近在做课程设计!在做一个修改模块出问题了,我是创建的列表控件的,当点击列表的记录时,记录中的字段各自对应到相应的编辑框中然后修改,保存到原先点击的记录中去!但是为什么不行啊,代码是这样的:
void CMyDlgModify::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
UpdateData(true);
pos=m_MlistCtl.GetSelectionMark();
m_Mzgbh=m_MlistCtl.GetItemText(pos,0);
m_Myear=m_MlistCtl.GetItemText(pos,1);
m_Mmonth=m_MlistCtl.GetItemText(pos,2);
m_Mdata=m_MlistCtl.GetItemText(pos,3);
m_Mxm=m_MlistCtl.GetItemText(pos,4);
m_Mjbgz=m_MlistCtl.GetItemText(pos,5);
m_Myjgz=m_MlistCtl.GetItemText(pos,6);
UpdateData(false);
*pResult = 0;
}void CMyDlgModify::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
CMyADOConn m_MyAdoConn;
m_MyAdoConn.OnInitADOConn();
_bstr_t sql;
sql = "select*from 职工个人工资表";
_RecordsetPtr m_pRecordset;
m_pRecordset=m_MyAdoConn.GetRecordSet(sql);
try
{
m_pRecordset->Move((long)pos,vtMissing);
m_pRecordset->PutCollect("职工编号",(_bstr_t)m_Mzgbh);
m_pRecordset->PutCollect("年份",(_bstr_t)m_Myear);
m_pRecordset->PutCollect("月份",(_bstr_t)m_Mmonth);
m_pRecordset->PutCollect("输入日期",(_bstr_t)m_Mdata);
m_pRecordset->PutCollect("姓名",(_bstr_t)m_Mxm);
m_pRecordset->PutCollect("基本工资",(_bstr_t)m_Mjbgz);
m_pRecordset->PutCollect("业绩工资",(_bstr_t)m_Myjgz);
m_pRecordset->Update();
m_MyAdoConn.ExitConnect();
}
可是不行啊!更新之后记录会替换掉别的记录!
求解答啊!
void CMyDlgModify::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
UpdateData(true);
pos=m_MlistCtl.GetSelectionMark();
m_Mzgbh=m_MlistCtl.GetItemText(pos,0);
m_Myear=m_MlistCtl.GetItemText(pos,1);
m_Mmonth=m_MlistCtl.GetItemText(pos,2);
m_Mdata=m_MlistCtl.GetItemText(pos,3);
m_Mxm=m_MlistCtl.GetItemText(pos,4);
m_Mjbgz=m_MlistCtl.GetItemText(pos,5);
m_Myjgz=m_MlistCtl.GetItemText(pos,6);
UpdateData(false);
*pResult = 0;
}void CMyDlgModify::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
CMyADOConn m_MyAdoConn;
m_MyAdoConn.OnInitADOConn();
_bstr_t sql;
sql = "select*from 职工个人工资表";
_RecordsetPtr m_pRecordset;
m_pRecordset=m_MyAdoConn.GetRecordSet(sql);
try
{
m_pRecordset->Move((long)pos,vtMissing);
m_pRecordset->PutCollect("职工编号",(_bstr_t)m_Mzgbh);
m_pRecordset->PutCollect("年份",(_bstr_t)m_Myear);
m_pRecordset->PutCollect("月份",(_bstr_t)m_Mmonth);
m_pRecordset->PutCollect("输入日期",(_bstr_t)m_Mdata);
m_pRecordset->PutCollect("姓名",(_bstr_t)m_Mxm);
m_pRecordset->PutCollect("基本工资",(_bstr_t)m_Mjbgz);
m_pRecordset->PutCollect("业绩工资",(_bstr_t)m_Myjgz);
m_pRecordset->Update();
m_MyAdoConn.ExitConnect();
}
可是不行啊!更新之后记录会替换掉别的记录!
求解答啊!
解决方案 »
- 错误指针???求救
- webbrowser怎么在自己中打开链接?
- 关于MS Paint保存完的bmp的dpi问题
- 如何拦截并修改某进程的封包ip_header和tcp_header
- 关于FindWindow()函数的用法
- CTime对象格式化为(“YYYY-MM-DD HH:MM:SS”)如何实现?
- 如何取得当执行程序文件(自己本身)所在的路径 !!!
- 紧急求助!怎样在Windows从小字体变成大字体时,对话框能够适应字体的变化?
- 求助 急!!opengl载入3DS格式的模型后,怎样来得到载入模型的长度宽度和高度?
- 如何在对话框关闭的时候,返回特定的字符串?
- 使用MFC AppWizard 在CMyDialogView类中添加菜单资源的消息响应函数!!
- 如何根据INPUT中的ID值获取此文本框?
UpdateData(FALSE);
更新数据
UpdateData(TRUE);
没说清楚,我说的时CListCtrl.UpdateData。
但是要更新的数据行和pos值不一致
修改方法
1。在OnClickList事件中获取点击的行数据主键 比如 zgbh = '111'
2。OnOK
事件中 语句这么写
select*from 职工个人工资表 where zgbh = '111'