一个关于ADO与DataGrid的问题

coordinate 2005-10-25 03:30:50
我做了一个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好像也感知了数据的存在,当表里只有一行数据的时候,它只有一行,当我加了一行的时候,它又多了一行,再加一行,再多一行。但是就是不显示数据,只是三行空白。
这是为什么呢?
...全文
168 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sundayweekly 2006-04-11
  • 打赏
  • 举报
回复
我也遇到这样的问题
TIking 2005-12-20
  • 打赏
  • 举报
回复
mark
coordinate 2005-10-25
  • 打赏
  • 举报
回复
这个问题我也注意过,所以我这样做过:
_RecordsetPtr rs;
void CDm_noteView::OnInitialUpdate()
{
但是也无济于事。
huaguocsdn 2005-10-25
  • 打赏
  • 举报
回复
你的rs是局部变量,当退出这个函数后就没有了,datagrid就没有数据源了,还显示什么啊!
把rs定义成全局的,试试看!
coordinate 2005-10-25
  • 打赏
  • 举报
回复
up
coordinate 2005-10-25
  • 打赏
  • 举报
回复
up

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧