如何在odbc中实现增加一条新记录

laomai 2010-05-13 11:13:07
我在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();
}
}

现在的问题是,运行之后,无法增加记录,实际的效果是修改了当前记录的内容,请问问题出在哪里,以及如何修改?


...全文
309 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyq5945 2010-05-27
  • 打赏
  • 举报
回复
结贴提醒

如果您的问题已经得到解决,请您早日结贴,如四日后未结贴,该贴将做强制结贴处理。
如果您的问题尚未得到解决,请回复方便其他网友知道你仍关注该问题。如四日后没有其他网友和楼主本人回复,该贴将做强制结贴处理。
如果贴子只有楼主和强制结贴的版主本人回复,将按无满意结帖处理。

注:强制结贴版主本人将不会分配答题分
laomai 2010-05-14
  • 打赏
  • 举报
回复
我只是想在找一个偷懒的办法而已,呵呵
laomai 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 happyparrot 的回复:]
引用 9 楼 xianglitian 的回复:
原来想说点什么
看来回帖就默默无语了
多亏没冲动
其实我添加记录一直用excute执行insert语句
惭愧......

我也是。只不过因为老迈太饼了,只会用这么愚昧的方法......我们要理解他。
[/Quote]
靠。这叫返璞归真,要是自己拼sql 语句就不用找你了。
laomai 2010-05-13
  • 打赏
  • 举报
回复
在鸟人和轻云的帮助下又调试了一下,发下我的代码在增加记录上没问题,问题发生在mfc自动生成的数据库导航工具栏上,
现在修改后的代码如下:

void CExam_004View::OnButton1()
{
m_pSet->AddNew();
UpdateData(FALSE);
}


void CExam_004View::OnButton4()
{
if (m_pSet->CanUpdate()) {
UpdateData(TRUE);
m_pSet->Update();
}
}

直接运行之后,点增加按钮,然后输入值,再点保存,是可以增加记录的,但是如果点了数据库的工具栏,就会修改当前的数据,原因不详。看来还是得自己写个记录导航条,呵呵
兔子-顾问 2010-05-13
  • 打赏
  • 举报
回复
我的天,众神之首的老迈村长的帖子。
独孤过儿 2010-05-13
  • 打赏
  • 举报
回复
linuxer搬个板凳看掐架,顺便出售鸡蛋,烂西红柿,木棒,砍刀等兵器~~
laomai 2010-05-13
  • 打赏
  • 举报
回复
鸟人你是顾头不顾腚
看看你改的代码:
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();
}
}

运行完了增加了一条记录不假,可是连第一条记录也改了...
快乐鹦鹉 2010-05-13
  • 打赏
  • 举报
回复
老迈居然敢自称他人师傅?????!!!!!
healer_kx 2010-05-13
  • 打赏
  • 举报
回复
我师父原来不会MFC啊。。。BS之,呼朋引伴BS之~
快乐鹦鹉 2010-05-13
  • 打赏
  • 举报
回复
解决了,饼子,说了是你自己不会用。
把m_pSet->Edit()和m_pSet->AddNew()交换一下顺序吧。UpdateData(FALSE)也不需要。
kuhx 2010-05-13
  • 打赏
  • 举报
回复
搬板凳听课
快乐鹦鹉 2010-05-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xianglitian 的回复:]
原来想说点什么
看来回帖就默默无语了
多亏没冲动
其实我添加记录一直用excute执行insert语句
惭愧......
[/Quote]
我也是。只不过因为老迈太饼了,只会用这么愚昧的方法......我们要理解他。
向立天 2010-05-13
  • 打赏
  • 举报
回复
原来想说点什么
看来回帖就默默无语了
多亏没冲动
其实我添加记录一直用excute执行insert语句
惭愧......

4,011

社区成员

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

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