本人是搞C#的!最近公司要我C++,本人不懂C++,对C++了解一片空白!求一个简单、易懂、最好有注释的代码MFC连接数据库的代码!分不够,我在再加!

解决方案 »

  1.   

    通过ADO操作Access数据库
    http://www.vckbase.com/document/viewdoc/?id=496
      

  2.   

    最好能把.h和.cpp文件!分的清楚一点!在MFC界面调用!
      

  3.   

    在MFC中,主要有两种方法可以连接sql数据库
    1.利用ADO连接:
    #import "msado15.dll" no_namespace rename("EOF", "EndOfFile") 
    //必须import这个dll,这个文件通常放在C:\Program Files\Common Files\System\ado路径下.
    _ConnectionPtr m_ptrConnection; //数据库连接对象
    构造函数中添加如下语句
    m_ptrConnection = NULL;
     ::CoInitialize(NULL); 
    //连接数据库的主要代码
    BOOL DataVisitor::ConnectDataBase(_bstr_t connectionStr)
    {
     /*
     Added by stone. If IDOConnection has not been set up,then create one.
     */
     if(m_ptrConnection == NULL)
     {
      HRESULT hr = m_ptrConnection.CreateInstance(__uuidof(Connection));
      if (FAILED(hr))
      {
       return FALSE;
      }
      else
      {
       _bstr_t strConnect = connectionStr;
       //"Provider=SQLOLEDB;Server=(local);Database=navigation; uid=sa; pwd=3277625;";   m_ptrConnection->CursorLocation = adUseClient;
       m_ptrConnection->IsolationLevel = adXactReadCommitted;
       try
       {
        m_ptrConnection->Open(strConnect,"","",adModeUnknown);
        return TRUE;
       }
       catch (_com_error e)
       {
       // AfxMessageBox((char *)e.Description());
        return FALSE;
       }
       
      }
     }
     return TRUE;
    }
    2. 利用ODBC连接
    #include <afxdao.h>
    CDaoDatabase   *MyDataBase;BOOL MyDB_OperSqL::Open_MyDatabase(CString connstr) 
    {
     try
     {
      if (MyDataBase == NULL)
      {
       MyDataBase = new CDaoDatabase();
      }
      MyDataBase->Open(NULL,0,0,connstr);  }
     catch( CDaoException* e )
     { 
      CString message = _T("MyDB_OperSqL 数据库异常:  ");     
      message += e->m_pErrorInfo->m_strDescription; 
      char info[400];
      sprintf(info,message);
      DispErrorMessage(info,__LINE__);
      e->Delete( );
      return FALSE;
     } 
     catch (CMemoryException *e)
     {
      DispErrorMessage("MyDB_OperSqL 内存异常!",__LINE__);
      e->Delete( );
      return FALSE;
     }
     catch(...)
     { 
      DispErrorMessage("MyDB_OperSqL 其它异常!",__LINE__);
      return FALSE;
     } 
     return  TRUE;
    }
    这里的连接字符串connstr一般是如下内容
    "ODBC;DRIVER={SQL Server};SERVER=(local);DATABASE=yourDataBase;UID=yourID;PWD=yourPassword"出处:http://www.cnblogs.com/ost/archive/2007/03/20/680680.html
      

  4.   


    对C++一点都了解!这和C#差别好大的!
    真的不会用!这些代码我直接复制在一个CPP文件,好像有错~
    该怎么用!
    我的是vs.2005开发平台!
      

  5.   

    建议楼主还是需要先了解MFC
    我这有关于ADO技术的实例,但数据库连接的是Access,楼主需要的话可以给我发邮件[email protected]
      

  6.   

    《ADO开发指南》
    一看就明白~
      

  7.   

    http://blog.sina.com.cn/s/blog_4def2d3d01000diw.html
    VC++中使用MFC通过ADO连接数据库方法小结