MFC建立的单文挡工程,初始的对话框中有一个ListControl用于显示数据库的表格。还有一个命令按钮,查询插入了一个对话框,上有一个EDIT控件,输入人名字来查询人的信息。显示在ListControl,查询按钮内的部分程序
    CString s;
    m_pSet->MoveFirst();
    CDlg_name dlg;
    if(dlg.DoModal()==IDOK)
    {
        .....
    }
           CDlg_name是插入的对话框新定义的类名,我这样定义了他的对象
           可是出现下面的连接错误
          'CDlg_name' : undeclared identifier
           dlg' : undeclared identifier
           left of '.DoModal' must have class/struct/union type
           等等,希望高手指点一下

解决方案 »

  1.   

    在调用CDlg_name的文件时,应该应用#include "CDlg_name.h"
      

  2.   

    我是通过ODBC数据源连接的SQL Server,光用m_pSet和一些成员函数,就实现了显示和查询功能。
    但我想添加一些SQL语句,不知在什么函数内添加。
      

  3.   

    应该是#include "Dlg_name.h"吧
      

  4.   

    include 头文件,要保证没有写错地方,不要写到一些条件编译里面哦。
    看一下类名有没有写错。
      

  5.   

    现在对了,但我实现这些都没有用到SQL语句,要在哪方面加入这些语句呢?又能实现一些什么样的功能?
      

  6.   

    现在对了,但我实现这些都没有用到SQL语句,要在哪方面加入这些语句呢?又能实现一些什么样的功能?
      

  7.   

    int CDlg_name::DoModal() 
    {
    // TODO: Add your specialized code here and/or call the base class

    return CDialog::DoModal();
    }
    里面要加语句吗?这是插入的对话框里的,控制OK ,cancel的吧
      

  8.   

    在CDlg_name::OnOk里面做.还有你的数据库连接和记录集的打开在哪里啊?
      

  9.   

    我不知道在哪里打开记录集,因为我就在加入ODBC数据源时,选了要操作的表格名字,然后就用
    InsertItem,SetItemText在ListControl里面显示表格内容了,我是初学数据库,不知道在哪用OpenEx(),只用了m_pSet对记录简单控制
    望大家指点或推荐好文。不胜感激。
      

  10.   

    我不知道在哪里打开记录集,因为我就在加入ODBC数据源时,选了要操作的表格名字,然后就用
    InsertItem,SetItemText在ListControl里面显示表格内容了,我是初学数据库,不知道在哪用OpenEx(),只用了m_pSet对记录简单控制
    望大家指点或推荐好文。不胜感激。
      

  11.   

    void CEX_Database01View::OnQueryButton() 
    {
    // TODO: Add your control notification handler code here
    CString s;
    m_pSet->MoveFirst();
    CDlg_name dlg;
    if(dlg.DoModal()==IDOK)
    {
    int i=0;
    while(!m_pSet->IsEOF())
    {
    if(m_pSet->m_column2==dlg.m_Name)
    {
              s.Format("%d",m_pSet->m_column1);
                                 m_Record_List.InsertItem(i,s);
              m_Record_List.SetItemText(i,1,m_pSet->m_column2);
              m_Record_List.SetItemText(i,2,m_pSet->m_column3);
              m_Record_List.SetItemText(i,3,m_pSet->m_column4);
              m_Record_List.SetItemText(i,4,m_pSet->m_column5);
     m_Record_List.SetItemText(i,5,m_pSet->m_column6);
     s.Format("%d",m_pSet->m_column7);
     m_Record_List.SetItemText(i,6,s);
     i++;
    }
    m_pSet->MoveNext();
    }
    }
    }这一句好象起不到效果,请问该怎么办if(m_pSet->m_column2==dlg.m_Name)
    m_pSet->m_column2为数据库表中第二列的内容,dlg.m_Name为edit控件中输入的查询内容
    用MessageBox 看他们内容相同,却还是不执行下面语句