可以用ADO助手试试你的数据库连接字符串和SQL语句。
或者加异常捕获看是什么错误
try
{
//你的ADO代码
}
catch (_com_error& e)
{
CString strMsg;
strMsg.Format(_T("错误描述:%s\n错误消息%s"), 
(LPCTSTR)e.Description(),
(LPCTSTR)e.ErrorMessage());
AfxMessageBox(strMsg);
}
catch(CException* pEx)
{
pEx->ReportError();
pEx->Delete();
}

解决方案 »

  1.   

    检查
    if (!Goodsdata.Open(AFX_DB_USE_DEFAULT_TYPE))
    AfxMessageBox(_T("数据打开失败!"));DisplayRecord();
      

  2.   

    try
    {
    if (!Goodsdata.Open(AFX_DB_USE_DEFAULT_TYPE))
    AfxMessageBox(_T("数据打开失败!"));DisplayRecord();
    SetButtonState();
    SetTextState();
    }
    catch(Exception e)//异常类好象是这么写的,如果不对,你具体查一下异常类
    {
    AfxMessageBox(_T("数据打开失败!"));
    }
      

  3.   

    将Goodsdata.Open(AFX_DB_USE_DEFAULT_TYPE))
    贴出来看看
      

  4.   

    BOOL CGoodsDlg::OnInitDialog() 
    {
    CDialog::OnInitDialog();

    // TODO: Add extra initialization here
    m_bAdd = FALSE;
    m_bEdit = FALSE; if (!Goodsdata.Open(AFX_DB_USE_DEFAULT_TYPE))
    AfxMessageBox(_T("数据打开失败!")); DisplayRecord();
    SetButtonState();
    SetTextState();
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
    }BOOL CGoodsDlg::DisplayRecord()
    {
    if (Goodsdata.IsEOF() && Goodsdata.IsBOF())
    {
    G_id = "";
    G_name = "";
    G_number = "";
    G_price = "";
    }
    else
    {
    if (Goodsdata.IsBOF())
    {
    Goodsdata.MoveNext();
    }
    else
    {
    if (Goodsdata.IsEOF())
    {
    Goodsdata.MovePrev();
    }
    }
    G_id = Goodsdata.G_Sid;
    G_name = Goodsdata.G_Sname;
    G_number = Goodsdata.G_Snumber;
    G_price = Goodsdata.G_Sprice ;
    }
    UpdateData(FALSE);
    return TRUE;}
      

  5.   

    if (Goodsdata.Open()) //在弹出连接对话框时, 手动选好数据库
    {
      try
      {
        DisplayRecord();
      }
      catch(CDBException *e)
      {
        e->ReportError();
        e->Delete();
      }
      Goodsdata.Close();
    }
    else
    {
      AfxMessageBox(_T("数据打开失败!"));

        
      

  6.   

    BOOL CGoodsDlg::OnInitDialog() 
    {
    CDialog::OnInitDialog();

    // TODO: Add extra initialization here
    m_bAdd = FALSE;
    m_bEdit = FALSE; if (!Goodsdata.Open(AFX_DB_USE_DEFAULT_TYPE))
    AfxMessageBox(_T("数据打开失败!")); DisplayRecord();
    SetButtonState();
    SetTextState();
    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
    }BOOL CGoodsDlg::DisplayRecord()
    {
    if (Goodsdata.IsEOF() || Goodsdata.IsBOF())
    {
    G_id = "";
    G_name = "";
    G_number = "";
    G_price = "";
    }
    else
    {
    if (Goodsdata.IsBOF())
    {
    Goodsdata.MoveNext();
    }
    else
    {
    if (Goodsdata.IsEOF())
    {
    Goodsdata.MovePrev();
    }
    }
    G_id = Goodsdata.G_Sid;
    G_name = Goodsdata.G_Sname;
    G_number = Goodsdata.G_Snumber;
    G_price = Goodsdata.G_Sprice ;
    }
    UpdateData(FALSE);
    return TRUE;}