我做了一个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好像也感知了数据的存在,当表里只有一行数据的时候,它只有一行,当我加了一行的时候,它又多了一行,再加一行,再多一行。但是就是不显示数据,只是三行空白。
这是为什么呢?
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好像也感知了数据的存在,当表里只有一行数据的时候,它只有一行,当我加了一行的时候,它又多了一行,再加一行,再多一行。但是就是不显示数据,只是三行空白。
这是为什么呢?
解决方案 »
- 关于Multimedia timer 的疑问
- http://www.vckbase.com/code/downcode.asp?id=2145编译不过去
- 问一下,通用对话框中,如何在标题栏显示选择文件名,选择变化时,会动态更新
- Error spawning cl.exe是什么原因?
- 关于vc设置
- 请教大家一个极为简单的问题,谢谢大家,急呀,我从CAsyncSocket派生的SOCKET服务器和客户端,在客户端向服务器端发送连接请求时,函数则
- 请教:如何在有应用程序死机的情况下,编程实现强制重新启动windows
- VC++60编译器:“插入”-->“新建立类”是不是不能建立没有基类的类?
- 在VC中如何将输入到组合框中的字符串保存到组合框的下拉列表中?
- 要做一个dll需要在不同的平台调用该如何声明?
- CSDN什么时候能加上RSS
- 请教如何将数据库中的数据显示在datagrid控件上(具体用哪些函数),谢谢!
把rs定义成全局的,试试看!
_RecordsetPtr rs;
void CDm_noteView::OnInitialUpdate()
{
但是也无济于事。