先介绍下程序的整体设计哈:程序界面如下图所示:我的需求是:点击刷新后,在一个Excel文档中插入一段记录(因为知识个自习用的模型,所以就没用Access或是别的更高端的数据库了哈)E...
先介绍下程序的整体设计哈:
程序界面如下图所示:
我的需求是:点击刷新后,在一个Excel文档中插入一段记录(因为知识个自习用的模型,所以就没用Access或是别的更高端的数据库了哈)
Excel文档的表格结构如下图所示:
下面是点击刷新按钮后的代码:
void C数据库自习模型Dlg::OnBnClickedButton1()
{
if(DB_writer->CanAppend())
{
DB_writer->MoveFirst();
DB_writer->AddNew();
DB_writer->column1="aaaaaaaaaaa";
DB_writer->column2="1111111111";
DB_writer->column3=2;
//*****下面这行代码出现了问题*****//
DB_writer->Update();
}
}
这里的DB_writer变量为一个MFC ODBC使用者对象,此时已近与目标Excel文件建立了连接,并且可以正常读取文件中的信息,但每当运行到“DB_writer->Update();”这句代码的时候,都会弹出如下图所示的错误提示:
在实际操作中,我发现如果删除下面这几行代码:
DB_writer->column1="aaaaaaaaaaa";
DB_writer->column2="1111111111";
DB_writer->column3=2;
程序就不会报错,但这实际上就是什么都没修改啊。。。
小弟我实在水平有限,百度了很久都没有找到合适的解决方案,还求高手们不吝赐教啊。。。
上面的代码调用了检测代码后的结果如下所示哈:
bool i;
i=DB_writer->CanUpdate();//本句运行后,i=false
i=DB_writer->CanAppend();//本句运行后,i=true
另外DB_writer->open()函数的返回值始终为1,看似一切正常哈
open的代码如下(写在OnInitDialog()中):
DB_writer=new CSheet1;
int i=false;
i=DB_writer->Open(CRecordset::dynaset , _T("[Sheet1$]"),CRecordset::appendOnly);
//运行后i=true
还求高手不吝赐教呀。。。
展开