我做了一个SDI程序,VIEW是从CFormView继承而来的,上面了一个DataGrid,在其中有如下代码:
void CDm_noteView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
_RecordsetPtr rs;
CString strSQL = "select * from [note]";
rs.CreateInstance(__uuidof(Recordset));
try
{
rs->CursorLocation=adUseClient;
rs->Open(strSQL.AllocSysString(), (((CDm_noteApp*)AfxGetApp())->m_pConnection).GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
//_bstr_t title = rs->GetFields()->GetItem("note_title")->GetValue();
//MessageBox((char*)title);//证明有记录 m_grid.Refresh();
m_grid.SetRefDataSource(NULL);
m_grid.SetRefDataSource((LPUNKNOWN)rs);
//m_grid.Refresh();
UpdateData(FALSE);
//UpdateData(TRUE);
//rs->Close();

}
但是打开为什么没有数据显示呢?
而且我还发现这样一个问题:
好像DataGrid好像也感知了数据的存在,当表里只有一行数据的时候,它只有一行,当我加了一行的时候,它又多了一行,再加一行,再多一行。但是就是不显示数据,只是三行空白。
这是为什么呢?