刚学数据库,想跟着书上做个例子的,就是那个学生注册数据库
 我是一步步跟着做的,由于找不到他VC里面的那个.mdb文件,我就自己用access创建了一个表 添了几行
第一步:安装数据源
第二部:创建一个单文档
第三部:就是把那个表放在这个工程目录下
第四步:创建一个派生于CRecordset类的记录集类CXXXSet
第五步:关联到那个表
这几步都是照着做的,应该没啥问题然后在XXXDoc.h的public里面定义一个:CXXXSet m_xxxSet;   //不明白为什么要创建在文档类的头文件里面
再在XXXView.h的private里面声明一个:CXXXSet* m_pSet;
头文件的包含我就不打了
最后就是在xxxView.cpp里的OnDraw和OnInitialUpdate函数里面写代码,如下:
void CTestDataBaseView::OnDraw(CDC* pDC)
{
CTestDataBaseDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm); //获取text中各种字体属性信息存入tm
int nLineHeight=tm.tmHeight+tm.tmExternalLeading;
CPoint pText(0,0);
int y=0;
CString str;
if(m_pSet->IsBOF())
{
return;
}
m_pSet->MoveFirst();
while (!m_pSet->IsEOF())
{
 str.Format("%ld",m_pSet->m_column1);
 pDC->TextOut(pText.x,pText.y,str);
 pDC->TextOut(pText.x+1000,pText.y,m_pSet->m_column2);
 str.Format("%d",m_pSet->m_column3);
 pDC->TextOut(pText.x+4000,pText.y,str);
 pDC->TextOut(pText.x+5000,pText.y,m_pSet->m_column4);
 m_pSet->MoveNext();
 pText.y-=nLineHeight;
}
}void CTestDataBaseView::OnInitialUpdate() 
{
// CView::OnInitialUpdate();        这个函数一创建就有这句,不过书上没有我就注释掉了        
CScrollView::OnInitialUpdate();    //这句是我硬加上的,书上的原句-_-! 为此我新建了一个CScrollView类,书上没有-_-!                             
                                             //也不知道这个什么用的
CSize sizeTotal(8000,10500);
SetScrollSizes(MM_HIENGLISH,sizeTotal);
m_pSet=&GetDocument()->m_Set;
if (m_pSet->IsOpen())
{
m_pSet->Close();
}
m_pSet->Open(); // TODO: Add your specialized code here and/or call the base class

}
 哎 感觉错误好多好多   希望朋友们帮帮忙看看  我头都疼死了T_T

解决方案 »

  1.   

    // CView::OnInitialUpdate();        这个函数一创建就有这句,不过书上没有我就注释掉了        
    CScrollView::OnInitialUpdate();    //这句是我硬加上的,书上的原句-_-! 为此我新建了一个CScrollView类,书上没有-_-!                            
    用原来的就是了,CView::OnInitialUpdate();表示调用基类CView的OnInitialUpdate();函数.
      

  2.   

    VC下的ADO编程入门 n          新建一基于对话框的应用程序zjy,在对话框上添加一个列表框和一个按钮,用ClassWizard给列表框添加一个变量m_listn          在StdAfx.h头文件的所有include语句下面添加如下一条语句#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF","adoEOF")n          在zjyDlg.h头文件处添加两个变量         _ConnectionPtr m_pConnection;         _RecordsetPtr m_pRecordset;n          在zjyDlg.cpp的BOOL CZjyDlg::OnInitDialog()的return TRUE;语句前添加如下语句         if(!AfxOleInit())         {                   AfxMessageBox("COM Error!");                            }n          添加按钮的消息响应函数并写入下面代码void CZjyDlg::OnButton1() {         m_list.ResetContent();         int i=0;         m_pConnection.CreateInstance(__uuidof(Connection));         m_pRecordset.CreateInstance(__uuidof(Recordset));         try{                   m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\ActiveX 数据对象\\VC_ACCESS\\zjy\\MyDb1.mdb;","","",0);                    m_pRecordset->Open("SELECT * FROM MyTable1",(IDispatch *)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);                   m_pRecordset->MoveFirst();                   while(!m_pRecordset->adoEOF)                   {                            i=i+1;                            _variant_t theValue = m_pRecordset->GetCollect("n1");                            if(theValue.vt != VT_NULL)                                     m_list.AddString((char *)_bstr_t(theValue));                            m_pRecordset->MoveNext();                   }                   m_pRecordset->Close();                   m_pConnection->Close();         }         catch(_com_error e)          {                   AfxMessageBox(e.ErrorMessage());         }          char str[32];         sprintf(str,"table have %d record",i);         AfxMessageBox(str);          m_pRecordset = NULL;         m_pConnection = NULL; }完成的功能就是把Access数据库中的某表的某一字段添加到列表框中
    我忘了这篇文章的连接了 一会儿再给你招几个ADO编程的文章
    别用你那种了 死板费劲得很
      

  3.   

    http://www.moon-soft.com/doc/39099.htm
      

  4.   

    http://hi.baidu.com/flly1/blog/item/98819ed1aad902d7572c8418.html
    http://www.cnblogs.com/cy163/archive/2007/03/29/693369.html
    看看这两个链接的东西 还是很容易懂的 
      

  5.   

    ,想学数据库编程的话,参考下面的例子动手编写几个程序就可以了:
    http://www.vckbase.com/document/viewdoc/?id=1215
    http://www.vckbase.com/document/viewdoc/?id=610
    http://www.vckbase.com/document/viewdoc/?id=496