CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  数据库

对于DataGrid设置DataSource的问题?

楼主kelelipeng(kelelipeng)2006-06-02 08:18:01 在 VC/MFC / 数据库 提问

我想要动态的指定要使用要用那个Ado,试了好多方法都不行,大家帮帮忙. 问题点数:20、回复次数:7Top

1 楼lfchen(一条晚起的虫--床上用品[家纺]专卖)回复于 2006-06-02 08:43:05 得分 0

m_pCon.CreateInstance("ADODB.Connection");  
  m_pCon->PutCursorLocation(adUseClient);   //  
  m_pCon->Open()  
   
  m_datagrid.SetRefDataSource((LPUNKNOWN)m_pRecordset);  
  m_datagrid.ReBind();Top

2 楼kelelipeng(kelelipeng)回复于 2006-06-02 11:16:15 得分 0

在一个对话框中放了一个DataGrid和ADO分别与m_datagrid和m_adodc绑定  
  以下是InitDialog中的部分代码  
   
  ////设置ado数据源信息:  
  m_adodc.SetConnectionString("Provider=SQLOLEDB.1;Password=sa;Persist   Security   Info=True;User   ID=sa;Initial   Catalog=ts_xt;Data   Source=LP");  
  m_adodc.SetCommandType(1);  
  m_adodc.SetRecordSource("Select   *   from   Books")   ;  
  m_adodc.Refresh();    
          }  
   
  我是想如何用动态的方法使m_datagrid指向这个Ado?  
  因为没有SetDataSource()事件,初学者大家能否写详细点,问题没有想的那么复杂.  
  Top

3 楼whutcl8110(whut)回复于 2006-06-02 14:32:03 得分 0

借宝地  
  再问两个问题  
  1.  
  m_pRecordset->CursorLocation   =   adUseClient;  
  m_DataGridCtrl.SetRefDataSource(NULL);  
  m_DataGridCtrl.SetRefDataSource((LPUNKNOWN)   m_pRecordset);  
   
  为什么加m_pRecordset->CursorLocation   =   adUseClient;  
  这句是什么意思?  
   
  不加这句,弹出错误“The   rowset   is   not   bookmakable!”  
   
  2.  
  在绑定数据源后  
  m_pConnection->Close();关闭连接后,DataGrid的数据空了,不知道为什么?  
   
  Top

4 楼syy64(太平洋)回复于 2006-06-02 15:23:35 得分 0

BOOL   CDlgRecordset::QueryRecord()  
  {  
  _CommandPtr   cmd;      
  _RecordsetPtr   rs;      
  _ConnectionPtr   conn;    
  _variant_t   vra;  
  VARIANT   *vt1   =   NULL;  
  try  
  {  
  /* cmd.CreateInstance(   __uuidof(Command));  
  rs.CreateInstance(__uuidof(Recordset));  
  conn.CreateInstance(__uuidof(Connection));*/  
   
  UpdateData(TRUE);  
  theApp.m_pConnection->PutCursorLocation(adUseClient);  
   
  /* conn->CursorLocation   =   adUseClient;  
   
  conn->Open(_bstr_t(   theApp.m_pConnection.GetInterfacePtr()   ),   L"",   L"",   -1);  
  cmd->ActiveConnection   =   conn;  
   
      cmd->CommandText   =   (_bstr_t)   m_strQuery;  
  cmd->CommandType   =   adCmdText;  
  rs   =   cmd->Execute(&vra,vt1,   adCmdText);*/  
  /*rs->PutRefActiveConnection(theApp.m_pConnection);  
  rs->Open((_bstr_t)m_strQuery,  
  theApp.m_pConnection.GetInterfacePtr(),  
  adOpenDynamic,  
  adLockOptimistic,  
  adCmdText);*/  
  ///         ((CTestDllApp*)(&theApp))->m_pConnection  
  /// m_pRecordset.CreateInstance(__uuidof(Recordset));  
   
  /* m_pRecordset->Open((_bstr_t)m_strQuery,  
  _variant_t((IDispatch*)theApp.m_pConnection,   TRUE),  
  adOpenStatic,  
  adLockOptimistic,  
  adCmdText);*/  
        if(m_pRecordset->State==1)  
  {  
  m_pRecordset->Close();  
  }  
  m_pRecordset->Open((_bstr_t)m_strQuery,  
  theApp.m_pConnection.GetInterfacePtr(),//»ñÈ¡¿â½Ó¿âµÄIDispatchÖ¸Õë  
  adOpenStatic,  
  adLockOptimistic,  
  adCmdText);  
  /* m_DataGrid.SetRefDataSource(NULL);  
  m_DataGrid.SetRefDataSource((LPUNKNOWN)m_pRecordset);  
  m_DataGrid.Refresh();*/  
  }  
  catch   (_com_error   &e)  
  {  
  ::MessageBox(NULL,e.Description(),"Ìáʾ",MB_OK);  
  }  
   
  m_DataGrid.SetRefDataSource((LPUNKNOWN)m_pRecordset);  
  m_DataGrid.Refresh();  
  UpdateData(FALSE);  
  //m_pRecordset->Close();  
  return   true;  
     
  }  
  Top

5 楼jbczj(人见人爱)回复于 2006-06-03 17:51:05 得分 0

在vc里面用数据库控件,不如用c++b   or   delphiTop

6 楼kelelipeng(kelelipeng)回复于 2006-06-12 10:18:10 得分 0

我解决了Top

7 楼shellworld(shellworld)回复于 2006-11-16 10:54:27 得分 0

回复人:whutcl8110(whut)   (   一级(初级))   信誉:100   2006-6-2   14:32:04   得分:0  
  ?    
   
  1.     m_pRecordset->CursorLocation   =   adUseClient  
  把从数据库取到的记录集放在你本地缓冲区,这是你用datagrid是必须这么设置。  
  2.   你的datasource都没有了,可能datagrid自动做了清空。Top

相关问题

关键词

得分解答快速导航

  • 帖主:kelelipeng

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo