我在vc6里用模板建立了一个简单的odbc程序,然后增加了两个按钮,用于增加和保存记录。代码如下://增加新记录
void CExam_004View::OnButton1()
{
// TODO: Add your control notification handler code here
m_pSet->AddNew(); //让数据库进入增加模式
UpdateData(FALSE); //数据交换,将新记录的内容传入控件
m_pSet->Edit(); //进入编辑模式
}
//保存记录
void CExam_004View::OnButton4()
{
if (m_pSet->CanUpdate()) {
UpdateData(TRUE); //把控件的值传给字段
m_pSet->Update(); //更新数据集
m_pSet->Requery();
}
}现在的问题是,运行之后,无法增加记录,实际的效果是修改了当前记录的内容,请问问题出在哪里,以及如何修改?
void CExam_004View::OnButton1()
{
// TODO: Add your control notification handler code here
m_pSet->AddNew(); //让数据库进入增加模式
UpdateData(FALSE); //数据交换,将新记录的内容传入控件
m_pSet->Edit(); //进入编辑模式
}
//保存记录
void CExam_004View::OnButton4()
{
if (m_pSet->CanUpdate()) {
UpdateData(TRUE); //把控件的值传给字段
m_pSet->Update(); //更新数据集
m_pSet->Requery();
}
}现在的问题是,运行之后,无法增加记录,实际的效果是修改了当前记录的内容,请问问题出在哪里,以及如何修改?
把m_pSet->Edit()和m_pSet->AddNew()交换一下顺序吧。UpdateData(FALSE)也不需要。
看看你改的代码:
void CExam_004View::OnButton1()
{
// TODO: Add your control notification handler code here
m_pSet->Edit();
m_pSet->AddNew();
//UpdateData(FALSE);
}
void CExam_004View::OnButton4()
{
// TODO: Add your control notification handler code here
if (m_pSet->CanUpdate()) {
UpdateData(TRUE);
m_pSet->Update();
m_pSet->Requery();
}
}运行完了增加了一条记录不假,可是连第一条记录也改了...
现在修改后的代码如下:void CExam_004View::OnButton1()
{
m_pSet->AddNew();
UpdateData(FALSE);
}
void CExam_004View::OnButton4()
{
if (m_pSet->CanUpdate()) {
UpdateData(TRUE);
m_pSet->Update();
}
}直接运行之后,点增加按钮,然后输入值,再点保存,是可以增加记录的,但是如果点了数据库的工具栏,就会修改当前的数据,原因不详。看来还是得自己写个记录导航条,呵呵
看来回帖就默默无语了
多亏没冲动
其实我添加记录一直用excute执行insert语句
惭愧......