| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 500 人关注过本帖
标题:请教mfc高手,ODBC数据库编程记录移动只能移动一条,详细如下
取消只看楼主 加入收藏
月光疾風
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-9-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
请教mfc高手,ODBC数据库编程记录移动只能移动一条,详细如下
最近刚学MFC课程设计需要准备做一个图书馆管理系统,在通过界面上的按钮进行浏览表单里的记录时单击第一次记录能下移一条,再单击第二次它就不移动了,不变了,单击上一条也是一样,翻阅很多资料未能解决,求解大神指点迷津,先谢谢了
这个是界面截图
图片附件: 游客没有浏览图片的权限,请 登录注册


这是我数据库表单的内容
图片附件: 游客没有浏览图片的权限,请 登录注册


下面这段是命令按钮“上一条”的代码

//上一条按钮消息映射函数
void CBookMDlg::OnPrior()
{
    //CBookDataSet派生自RecordSet类
    CBookDataSet m_rsDataSet;//声明一个记录集对象

    //判断记录集是否打开,若打开则关闭
    if(m_rsDataSet.IsOpen())
    {
        m_rsDataSet.Close();
    }
   
    m_rsDataSet.Open();            //打开记录集

    if(!m_rsDataSet.IsEOF())    //判断是否到达记录集的结尾
    {
        m_rsDataSet.MovePrev();    //指针移动到上一条记录

        //数据库更新到控件关联变量
        m_strBOOKNAME=m_rsDataSet.m_BOOKNAME;    //书名
        m_strBOOKID=m_rsDataSet.m_BOOKID;        //书籍条码
        m_strAUTHOR=m_rsDataSet.m_AUTHOR;        //作者
        m_strPRESS=m_rsDataSet.m_PRESS;            //出版社
        m_strPRESSDATE=m_rsDataSet.m_PRESSDATE;    //出版日期
        m_strFLAG=m_rsDataSet.m_FLAG;            //借阅信息

        UpdateData(FALSE);//数据更新到控件
    }
    m_rsDataSet.Close();//操作完成关闭记录集   
}
搜索更多相关主题的帖子: 资料 记录 
2012-12-08 22:33
月光疾風
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-9-7
收藏
得分:0 
回复 楼主 月光疾風
比较急,各位大神帮忙看看,自己再顶下,真心感谢~
2012-12-08 22:47
月光疾風
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-9-7
收藏
得分:0 
回复 2楼 月光疾風
你好,我试过了你的代码,还是不行,发现一个问题,如果我一次连续调用两个m_rsDataSet.MoveNext()函数将记录就会下移两个,但是貌似单击按钮还是只能触发一次,按第二次就没反应了,是不是还跟m_rsDataSet.Open()这个成员函数的参数有关系,谢谢了~
    CBookDataSet m_rsDataSet;
   
    if(m_rsDataSet.IsOpen())
    {
        m_rsDataSet.Close();
    }
   
    m_rsDataSet.Open();//打开记录集
    if(!m_rsDataSet.IsEOF())
    {
        //第一次单击,移动到下一条
        if(g_nClickState == 0)
        {
            g_nClickState = 1;

            m_rsDataSet.MoveNext();//移动两次
            m_rsDataSet.MoveNext();

            //数据库更新到控件关联变量
            m_strBOOKNAME=m_rsDataSet.m_BOOKNAME;//书名
            m_strBOOKID=m_rsDataSet.m_BOOKID;//书籍条码
            m_strAUTHOR=m_rsDataSet.m_AUTHOR;//作者
            m_strPRESS=m_rsDataSet.m_PRESS;//出版社
            m_strPRESSDATE=m_rsDataSet.m_PRESSDATE;//出版日期
            m_strFLAG=m_rsDataSet.m_FLAG;//借阅信息

            UpdateData(FALSE);//数据更新到控件
        }
        else
        {
            //第二次单击
            g_nClickState = 0;
        }
    }
    m_rsDataSet.Close();
2012-12-10 13:26
月光疾風
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-9-7
收藏
得分:0 
回复 3楼 crystall
你好,我知道是什么问题了,因为每次单击的时候我都调用了OPEN()成员函数的关系,估计就跟初始化一样,每次单击都初始化,就出现了只能移动一条记录的现象,不过现在又有个问题需要请教下,怎么在程序初始化开始的时候打开数据库记录集,这样我就可以不用通过对象来访问OPEN()成员函数了,非常感谢
2012-12-10 13:55
月光疾風
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-9-7
收藏
得分:0 
回复 6楼 crystall
多谢提醒,之前没想到定义为成员变量,应该是可行,晚上试一下,真心感谢~
2012-12-11 12:54
快速回复:请教mfc高手,ODBC数据库编程记录移动只能移动一条,详细如下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024187 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved