用Adodc向access表中插入数据时提示“对象关闭时,操作不被允许”,但数据却已经插入数据库了,这是为什么呀?

Lasia龟龟 2008-11-28 04:13:48
CString sql= (CString)"Insert into Product (ProNum, State,Memo1,Operate) Values('";
sql = sql + (CString)s_Edit;
sql = sql + (CString)"','";
sql = sql + (CString)s_State;
sql = sql + (CString)"','";
sql = sql + (CString)s_Memo;
sql = sql + (CString)"','";
sql = sql + (CString)s_Operate;
sql = sql + (CString)"')";

m_Adodc.CommandTypeEnum = CAdodc1::adCmdText;
m_Adodc.ConnectStringTypeEnum = CAdodc1::adConnectTypeOledb;
m_Adodc.put_RecordSource(sql);
m_Adodc.Refresh();
m_DataGrid.Refresh();
UpdateData(false);

代码如上,我知道是因为 m_DataGrid.Refresh();这句引起的 refresh一般只能用来打开记录集,用来执行语句会出错误.但应该有什么解决方法呢?
...全文
143 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lasia龟龟 2008-11-29
  • 打赏
  • 举报
回复
貌似不能解决.难道要我用别的方法重写
android2008 2008-11-28
  • 打赏
  • 举报
回复
up
Lasia龟龟 2008-11-28
  • 打赏
  • 举报
回复
已经绑定数据源的data sourse是IDC_ADODC1
一条晚起的虫 2008-11-28
  • 打赏
  • 举报
回复
m_DataGrid.Refresh();
之前绑定了数据源了吗?

//动态绑定可以这样做
LPUNKNOWN pCursor=m_adodc1.GetDSCCursor();
ASSERT(pCursor!=NULL);
m_datagrid1.SetRefDataSource(pCursor);
一条晚起的虫 2008-11-28
  • 打赏
  • 举报
回复
不好意思,看错,你用的是ADO控件,我看看
一条晚起的虫 2008-11-28
  • 打赏
  • 举报
回复
m_Adodc->Open(........)
//参数可以看ADO程序员手册,网上有
//ADO操作可以看看http://www.vckbase.com/document/finddoc.asp?keyword=ADO这里的内容
Lasia龟龟 2008-11-28
  • 打赏
  • 举报
回复
请问楼上怎样open记录集呢..m_Adodc下都没有openrecord等之类的函数..能否具体给出代码呢
一条晚起的虫 2008-11-28
  • 打赏
  • 举报
回复
m_Adodc.Refresh();
//是对已获得的记录集重新查询。你记录集都没有Open呢,那来的Refresh

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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