直接插入新类,基于 CDaoRecordSet,然后选择数据库,下面就会了吧
要包含#include <afxdao.h>

解决方案 »

  1.   

    刚才又试了一下,的确可以.那不利用mfc该怎么办呢?那有dao数据库方面比较全面的例程呢?我想对着学一学.
      

  2.   

    这个我就不知道了,我也是很菜的,对MFC懂一点点而已,看看MSDN吧找最新的,里面有例子(我自己没看过)我可以发给你
      

  3.   

    我利用MFC插入一个CDaoRecordset的派生类後,在stdafx.h里包含了<afxdao.h>,然后在文档中定义了一个CDaoReocordset派生类的对象,结果编译总是出错.错误如下:
    error C2146: syntax error : missing ';' before identifier 'm_Recordset'
    error C2501: 'CWrad1Recordset' : missing storage-class or type specifiers
    error C2501: 'm_Recordset' : missing storage-class or type specifiers
    Error executing cl.exe.
    我错在哪里?请大家指点
      

  4.   

    一个读取Excel文件的例子,看一看或许有帮助。
    1、用了3个类,CDaoDatabase,CDaoRecordset,CCrack;其中前两个类为VC自己定义的类,包含它的头文件就行了(afxdao.h)。CCrack为自定义的类,包含它的头文件与源文件。抛出异常类型为CDaoException。
    2、下面示例代码及注释。
        CDaoDatabase db;              //定义一数据库db
        CDaoRecordset tr(&db);     //定义一db上数据集tr
        CCrack cDataConvert;        //定义一数据转换类,用于转换数据。     CString szFileName;           //用于保存要打开的文件名(包括路 径)
        COleVariant szRecordData;     //保存获得的记录数据
        CString szDisplay;            //本例中用于显示数据。        char szFieldName[100];         //保存要读取的列名;
        strcpy(szFieldName,"content");  //写入列名
        szFieldName[7]='\0';    CFileDialog dlg(true);
        dlg.DoModal();    //获取要打开的文件名及路径
        szFileName = dlg.GetFileName();    db.Open(szFileName,true,true,"Excel 5.0");   //打开数据库
         tr.Open(dbOpenDynaset,"select * from   [game_question$]",dbReadOnly);
    //lib_question   
    //打开该数据库上的数据集。
        while (!tr.IsEOF())
       {
            tr.GetFieldValue(szFieldName,szRecordData);  //读取列名为szFieldName的 列的数据。        szDisplay = cDataConvert.strVARIANT(&szRecordData); //数据转换
            m_Control.AddString(szDisplay);                      //本例中显示该数据        tr.MoveNext);                                                //移动到下一行
        }    tr.Close();                                             //关闭数据集
        db.Close();                                            //关闭数据库 
      

  5.   

    是这样:
       我用MFC生成了一个新类(CDaoRecordset的派生类),想在SDI的文档中用他.
    在MyDoc.h中定义了此新类的一个对象,在MyDoc.cpp中向数据库增加纪录,编译出现上述错误.afxdao.h是包含在stdafx.h中的.对程序中的每个类编译时,都出现上述错误.好像是头文件的问题.
      

  6.   

    http://www.mayia.com/downshu/bookcity/down.asp?id=413
    <<Visual C++MFC 编程实例>>里面有这方面的实例。要记得给分。
      

  7.   

    这个错误怎么解决?在stdafx.h中我加入的是:
    #ifndef _AFX_NO_DAO_SUPPORT
    #include <afxdao.h> // MFC DAO database classes
    #endif // _AFX_NO_DAO_SUPPORT
      

  8.   

    #include <afxdao.h>直接在CYourRecordSet 的头文件加入试试
    还有,在你定义CYourRecordSet m_Recordset的上面(应该市Class CYourDoc....)
    加上class CYourRecordSet;试试
      

  9.   

    包含在派生类里试过,也不行.
    我在用AppWizard建工程的时候,没有选择数据库的支持,现在用mfc生成新的CDaoRecoedset派生类,对上述问题有影响吗?
    例子我马上去看
      

  10.   

    语名没错
    #include <afxdao.h>
    有个笨方法,新建一个工程文件之后,加入mfc对数据库的支持(Appwizard的第4步),看它在哪些文件中加了那句话。另外,我说的那本书中的72和73例都是关于这方面的。
      

  11.   

    to howard():
    已经加了,不过还是有错,只不过错误减少了,如下:
     error C2079: 'm_Recordset' uses undefined class 'CWrad1Recordset'
      

  12.   

    我写数据库程序很少用到Doc类,觉得是鸡肋,我都是虚拟LISTVIEW加DIALOG写的你换个地方试试(操作数据库的部分放到别的类里)
      

  13.   

    to  tang_605(怀念605) :
      按你的办法,就是在stdafx.h中加的呀
      

  14.   

    在你的DoC类的头部加上#include "wradlrecordset.h"
    然后删除class CWradlRecordSet;这段代码,或者都加上,你都试试
      

  15.   

    error C2079: 'm_Recordset' uses undefined class 'CWrad1Recordset'
    在'm_Recordset' 的定义头文件中include 'CWrad1Recordset' 的头文件。
      

  16.   

    现在可以了.在MyDoc.h中加上#include "wradlrecordset.h",而且加上class CWradlRecordSet;能告诉我是什么原因吗?谢谢你,怎么给分,我刚来不久.
      

  17.   

    如果不包含你自己的类的头文件,程序是不认识这个类的(很基本的知识)
    你的程序中有很多#include <XX.h>如果是尖括号,这个文件在系统的目录,如果是引号,则在你自己的项目的目录中
      

  18.   

    如果加上#include ",后面的Class ....可以不用了