可以用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();
}
或者加异常捕获看是什么错误
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();
}
if (!Goodsdata.Open(AFX_DB_USE_DEFAULT_TYPE))
AfxMessageBox(_T("数据打开失败!"));DisplayRecord();
{
if (!Goodsdata.Open(AFX_DB_USE_DEFAULT_TYPE))
AfxMessageBox(_T("数据打开失败!"));DisplayRecord();
SetButtonState();
SetTextState();
}
catch(Exception e)//异常类好象是这么写的,如果不对,你具体查一下异常类
{
AfxMessageBox(_T("数据打开失败!"));
}
贴出来看看
{
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;}
{
try
{
DisplayRecord();
}
catch(CDBException *e)
{
e->ReportError();
e->Delete();
}
Goodsdata.Close();
}
else
{
AfxMessageBox(_T("数据打开失败!"));
}
{
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;}