首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

用ADO操作数据库的有关问题

2012-03-25 
用ADO操作数据库的问题、代码C/C++ codevoid CshujukuDlg::OnBnClickedOk(){// TODO: 在此添加控件通知处理

用ADO操作数据库的问题、
代码

C/C++ code
void CshujukuDlg::OnBnClickedOk(){    // TODO: 在此添加控件通知处理程序代码    CoInitialize(NULL);    _ConnectionPtr pConn(_uuidof(ConnectionPtr));    _RcordSetPtr pRst(_uuidof(RcordSetPtr));    pConn->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=db_test;Data Source=CHENGFENG-PC";    pConn->Open("","","",-1);    pRst=pConn->Execute("select * from student"),NULL,adCmdText);    while(pRst!=rsEOF)    {        m_ListCtrl.SetItemData(0,(_bstr_t)pRst->GetCollect("stu_name"));        pRst->MoveNext();    }    pRst->Close();    pConn->Close();    pRst.Release();    pConn.Release();    CoUninitialize();}



C/C++ code
BOOL CshujukuDlg::OnInitDialog(){    CDialogEx::OnInitDialog();    // 将“关于...”菜单项添加到系统菜单中。    // IDM_ABOUTBOX 必须在系统命令范围内。    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);    ASSERT(IDM_ABOUTBOX < 0xF000);    CMenu* pSysMenu = GetSystemMenu(FALSE);    if (pSysMenu != NULL)    {        BOOL bNameValid;        CString strAboutMenu;        bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);        ASSERT(bNameValid);        if (!strAboutMenu.IsEmpty())        {            pSysMenu->AppendMenu(MF_SEPARATOR);            pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);        }    }    // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动    //  执行此操作    SetIcon(m_hIcon, TRUE);            // 设置大图标    SetIcon(m_hIcon, FALSE);        // 设置小图标    // TODO: 在此添加额外的初始化代码    CRect rc;     m_ListCtrl.GetWindowRect(&rc); //获取控件大小     //设置了四列,大小是一样的     m_ListCtrl.InsertColumn(0, _T("序号"), LVCFMT_CENTER, rc.Size().cx/4, 0);     m_ListCtrl.InsertColumn(1, _T("学号"), LVCFMT_CENTER, rc.Size().cx/4, 1);     m_ListCtrl.InsertColumn(2, _T("姓名"), LVCFMT_CENTER, rc.Size().cx/4, 2);     m_ListCtrl.InsertColumn(3, _T("班级"), LVCFMT_CENTER, rc.Size().cx/4, 3);     //LVS_EX_GRIDLINES是希望显示网格;LVS_EX_FULLROWSELECT是希望被选中时整行反色显示;LVS_EX_HEADERDRAGDROP是让其支持点击表头排序;LVS_EX_TWOCLICKACTIVATE是希望有鼠标在未被选中的行上移动的时候有一些效果     m_ListCtrl.SetExtendedStyle(m_ListCtrl.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP /*| LVS_EX_TWOCLICKACTIVATE*/);     return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE}



跟着视频一步步来的 还是会出错
#import "C:\Program Files\common files\system\ado\msado15.dll" no_namespace rename("EOF","rsEOF")
#include <afxwin.h>  
如果我这样放头文件 d:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxv_w32.h(16): fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>
1> 就会出现这个问题

#include <afxwin.h> // MFC 核心组件和标准组件

#import "C:\Program Files\common files\system\ado\msado15.dll" no_namespace rename("EOF","rsEOF")
如果我这样放 
1>e:\全新的路\代码\shujuku\shujuku\shujukudlg.cpp(184): error C2065: “pRst”: 未声明的标识符
1>e:\全新的路\代码\shujuku\shujuku\shujukudlg.cpp(184): error C2660: “Connection15::Execute”: 函数不接受 1 个参数
1>e:\全新的路\代码\shujuku\shujuku\shujukudlg.cpp(184): error C2059: 语法错误:“)”
1>e:\全新的路\代码\shujuku\shujuku\shujukudlg.cpp(185): error C2065: “pRst”: 未声明的标识符
1>e:\全新的路\代码\shujuku\shujuku\shujukudlg.cpp(185): error C2065: “rsEOF”: 未声明的标识符
就出现这个错误  

这个怎么解决啊、、 怎么办啊

[解决办法]
pRst=pConn->Execute("select * from student"),NULL,adCmdText);


你的括号不匹配,以后写代码注意点

热点排行