我正在使用以下Tutorial来创建一个简单的MFC应用程序,问题是在表中插入新行 应用程序显示错误,说Recordset是只读的。 是否需要设置任何变量来将Recordset更改为写入模式?
void CSampleDBView::OnBnClickedInsert()
{
CStringW text;
m_input.GetWindowTextW(text);
m_pSet->m_student=text;
m_pSet->AddNew();
m_pSet->Update();
AfxMessageBox(text);
}
这是单击按钮时添加新行的代码。 m_input是一个EditControl,用于接收要插入的文本。
答案 0 :(得分:0)
检查CRecordset的打开方式。如果你打算更新它,它需要有'CRecordset :: dynaset'或CRecordset :: dynamic'类型。您打开的电话可能有“快照”或其他类型。
发布的代码还有一个问题。对AddNew()的调用需要在赋值行之前进行:
m_pSet->AddNew();
m_pSet->m_student=text;
因为对AddNew()的调用初始化了用于跟踪哪些列已更改数据的标志。