先查询,将查询结果显示在ListCtrl控件中,然后再选择某一条记录进行删除,结果删除的数据是数据库中该位置的数据,而不是查询结果该位置的数据。
比如说,数据库中总共有四个数据,分别是1,2,2,1.我先查询等于1的数据,然后ListCtrl控件中显示两条记录。如果我将第二条记录删除的话,结果实际删除的是数据库中第二个数据,也就是第一个等于2的数据。请问为什么呢?
比如说,数据库中总共有四个数据,分别是1,2,2,1.我先查询等于1的数据,然后ListCtrl控件中显示两条记录。如果我将第二条记录删除的话,结果实际删除的是数据库中第二个数据,也就是第一个等于2的数据。请问为什么呢?
解决方案 »
- about VC
- 有没方法设置static中文字的竖直位置
- 关于VC画图的问题,请高手指教!!在线等
- getItem获得pszText失败!
- MFC ODBC 的CRecordset绑定CString对象到存储过程的输出参数问题,急!
- static成员变量的多线程访问问题
- 建立一个基类为对话框CDialod的类,在对话框上放一个listctrl,想在对话框显示时初始化listctrl,应该如何做?
- 有谁知道QQ等聊天软件中,表情框(就是显示所有表情图片的下拉框)是怎么实现的吗?
- 同样使用的静态文本控件,为什么有的在ClassWizard中找不到?
- 谁能帮我改掉这毛病? 给100分
- VC6.0使用appface.dll时遇到的一些问题,请高手帮忙解决
- 怎样用vc++连接firebird数据库
(1)建立一个vector列表,保存将查询到的结果插入到列表控件中的索引,以及该条记录在数据库中的数据表中对应的主键值,比如Guid;
struct ResIndexAndGuid
{
int index;
std::string guid;
}
......
std::vector<ResIndexAndGuid> resIndexAndGuidList;(2)当查询到结果后将结果插入到List控件中时,使用SetItemDate()函数将index(index从0开始的整数)设为该行的data值,然后将index和Guid插入到resIndexAndGuidList列表中;
(3)当我们要删除List控件中的某条记录,首先用GetItemDate()函数获取该条记录对应的index,然后到resIndexAndGuidList列表中去遍历,找到对应的Guid,最后用这个Guid去构建SQL语句去删除数据库中的记录就可以了。