MFC对话框如何连接Access数据库的数据?

解决方案 »

  1.   

    try
    {
    hr = m_pConnection.CreateInstance("ADODB.Connection");///
    if( TRUE == SUCCEEDED(hr))
    {
    strDBFile = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strDBFile;
    hr = m_pConnection->Open((_bstr_t)strDBFile ,_bstr_t(strUser),_bstr_t(strUser),adModeUnknown);
    }
    }
    catch(_com_error e)
    {
    CString errormessage;
    errormessage.Format("%s",e.ErrorMessage());
    AfxMessageBox(errormessage);
    return FALSE;
    }
      

  2.   

    给你一个例子,MFC+ADO+ACCESS MDBhttp://www.vckbase.com/document/viewdoc/?id=496
      

  3.   

    try 

    hr = m_pConnection.CreateInstance("ADODB.Connection");/// 
    if( TRUE == SUCCEEDED(hr)) 

    strDBFile = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strDBFile; 
    hr = m_pConnection->Open((_bstr_t)strDBFile ,_bstr_t(strUser),_bstr_t(strUser),adModeUnknown); 


    catch(_com_error e) 

    CString errormessage; 
    errormessage.Format("%s",e.ErrorMessage()); 
    AfxMessageBox(errormessage); 
    return FALSE; 
      

  4.   

    ::CoInitialize(NULL); m_pConnection.CreateInstance("ADODB.Connection"); //连接数据库
    try                 
    {
      m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;User ID=admin;Data Source=.\\info.mdb; ","","",adModeUnknown); }
    catch(_com_error e)
    {
      AfxMessageBox("数据库连接失败!");
      

  5.   

    m_pConnection 是哪个文件里定义的?我封装在类里面的时候,发现这个没定义。
      

  6.   

    在对话框初始化InitDialog
    LONG lStyle = m_ListCtrl.SendMessage
    (LVM_GETEXTENDEDLISTVIEWSTYLE);
    lStyle |= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | 
    LVS_EX_HEADERDRAGDROP;
    m_ListCtrl.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0,
    (LPARAM)lStyle);
    LV_COLUMN lvc;

    lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH /*| LVCF_FMT*/;

    lvc.iSubItem = 0;
    lvc.pszText = (char *)"序号";
    lvc.cx = 50;
    m_ListCtrl.InsertColumn(0,&lvc);

    lvc.iSubItem = 1;
    lvc.pszText = (char *)"操作内容";
    lvc.cx = 200;
    m_ListCtrl.InsertColumn(1,&lvc);

    lvc.iSubItem = 2;
    lvc.pszText = (char *)"用户";
    lvc.cx =100;
    m_ListCtrl.InsertColumn(2,&lvc);

    lvc.iSubItem = 3;
    lvc.pszText = (char *)"时间";
    lvc.cx = 100;
    m_ListCtrl.InsertColumn(3,&lvc);
    我是用的别人封装好的ADO连接,打开数据库
    下面是查询
    UpdateData(TRUE);
    if (m_star>m_end)
    {
    MessageBox("起始日期不能大于截止日期,请重新输入!","提示信息", MB_ICONEXCLAMATION ); 
    return;
    }
    m_ListCtrl.DeleteAllItems();
    CADORecordset* pRs = new CADORecordset(CPrjKeyMgrApp::g_pDb);
    int i = -1;

    UpdateData(TRUE);
    CString strStar;
    CString strEnd;
    CString TempSql;
    strStar.Format("%04d-%02d-%02d %02d:%02d:%02d",m_star.GetYear(),m_star.GetMonth(),m_star.GetDay(),0,0,0); 
    strEnd.Format("%04d-%02d-%02d %02d:%02d:%02d",m_end.GetYear(),m_end.GetMonth(),m_end.GetDay()+1,0,0,0); 
    CString temp="select *  from SystemLog WHERE TIMEVALUE >='"+strStar+"'AND TIMEVALUE <='"+strEnd+"'";
    if(pRs->Open((LPCTSTR)temp))
    {
    while(!pRs->IsEof())
    {
    LV_ITEM lvitem;
    lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE;
    lvitem.state = 0;      
    lvitem.stateMask = 0; 
    char temp[50];

    lvitem.iItem = ++i;
    lvitem.iSubItem = 0;
    lvitem.pszText =itoa(i, temp, 10); 
    m_ListCtrl.InsertItem(&lvitem);

    pRs->GetFieldValue("OPERATION",TempSql);
    m_ListCtrl.SetItemText(i, 1, (LPCTSTR)TempSql);

    pRs->GetFieldValue("OPERATOR",TempSql);
    m_ListCtrl.SetItemText(i, 2, (LPCTSTR)TempSql);

    pRs->GetFieldValue("TIMEVALUE",TempSql);
    m_ListCtrl.SetItemText(i, 3, (LPCTSTR)TempSql);


    pRs->MoveNext();
    }
    pRs->Close();
    }
    else
    AfxMessageBox("记录集创建失败");
      

  7.   

    wo mei you yong guo
      

  8.   

    原来好多人不用vc了
    其实vc还是蛮有用的
      

  9.   

    m_pConnection.CreateInstance(__uuidof(Connection));   
    try                                     
      {   
      //   打开本地Access库Demo.mdb   
      m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb","","",adModeUnknown); //D:\\欧练习程序\\CurrentCast\\debug\\db1.mdb
      }   
      catch(_com_error   e)   
      { 
         AfxMessageBox(e.ErrorMessage());   
         return   FALSE;   
      }   
      

  10.   

    stdafx.h#import "C:\program files\common files\system\ado\msado15.dll" \
    no_namespace \
    rename ("EOF", "adoEOF") //引入ADO DLLextern _ConnectionPtr m_pConnection;
    extern _RecordsetPtr m_pRecordset;      //记录集//--------------------------------------
    stdafx.cpp_ConnectionPtr m_pConnection;
    _RecordsetPtr m_pRecordset; //记录集
      

  11.   

    ADO
    好久没用vc了  怀念………………
      

  12.   

    在stdafx.h 中,#import "C:\program files\common files\system\ado\msado15.dll" \ 
    no_namespace \ 
    rename ("EOF", "adoEOF") //引入ADO DLL在对话框的头文件中:
    _ConnectionPtr m_pConnection; 
    _RecordsetPtr m_pRecordset; //记录集
      

  13.   

    c:\program files\microsoft visual studio\vc98\include\dbdaoint.h(33) : error C2011: 'EditModeEnum' : 'enum' type redefinition
    c:\program files\microsoft visual studio\vc98\include\dbdaoint.h(57) : error C2011: 'LockTypeEnum' : 'enum' type redefinition
    c:\program files\microsoft visual studio\vc98\include\dbdaoint.h(73) : error C2011: 'FieldAttributeEnum' : 'enum' type redefinition
    c:\program files\microsoft visual studio\vc98\include\dbdaoint.h(83) : error C2011: 'DataTypeEnum' : 'enum' type redefinition
    c:\program files\microsoft visual studio\vc98\include\dbdaoint.h(255) : error C2011: 'ParameterDirectionEnum' : 'enum' type redefinition
    c:\program files\microsoft visual studio\vc98\include\dbdaoint.h(268) : error C2011: 'RecordStatusEnum' : 'enum' type redefinition
    执行 cl.exe 时出错.
    为什么我连接运行后提示又以上错误啊!!!!!
      

  14.   


    都是重定义错误
    点菜单 EDIT-〉Find in files (编辑-〉文件中查找)
    分别查找EditModeEnum  LockTypeEnum FieldAttributeEnum 这些词 
    看是不是有两处或多处定义了 删掉多余的定义就行
      

  15.   

    30楼所谓的重定义 是少了
    #import "c:\\...\\msado.dll"
      

  16.   

    试试 FormView 也和对话框差不多
    再用List Box 和 ADO
      

  17.   

    试试 FormView 也和对话框差不多
    再用List Box 和 ADO
      

  18.   

    http://download.csdn.net/source/503320
      

  19.   

    http://www.vckbase.com/document/viewdoc/?id=496
      

  20.   

    为什么我在visual studio2010中做的access访问程序,部署到其他计算机上(已经安装c/c++2010版运行时态库),就是打不开数据库连接????
      

  21.   

    我发得贴,谁能帮我回答,不胜感激!
    http://topic.csdn.net/u/20110909/10/d53b0815-4c3c-491b-b3f0-b1bc0516ee05.html?seed=355257816&r=75431700#r_75431700