永发信息网

VC++ 使用 ADO 的Update更新数据库不成功。

答案:2  悬赏:0  手机版
解决时间 2021-02-15 07:40
  • 提问者网友:绫月
  • 2021-02-14 11:20
我写了个登陆界面的程序,里面想用Update函数更新数据库中的密码(即密码修改)功能。
以下是修改(Modify)密码的功能函数:
void CLoginDlg::Upload()
{
UpdateData();
CString strSql19,strHuman3;
m_cobHuman.GetWindowText(strHuman3);
strSql19.Format("update mima set PassWord='%s' where Human='%s'",strChange,strHuman3);
variant_t ch3;
m_passConnection->Execute(_bstr_t(strSql19),& ch3,adCmdText);
AfxMessageBox(strSql19);
}
其中:m_pass2是新密码的值(CString类),strHuman3是人名;
注:m_passConnection在初始化就已经连接成功数据库了;而且数据库中添加行和为列赋值都可以用,查询也正常就是用不了Update,请高人帮忙!

补充:早上用debug调试的时候,就是在
m_passConnection->Execute(_bstr_t(strSql19),& ch3,adCmdText);
这个语句出的问题,错误:Unhandled exception in HospitalRes.exe(KERNEL32.DLL):0xE06D7363:Microsoft C++ Exception;
7C812FD3 POP esi;
0044F35C and dword ptr[esi+0ch],0;
最佳答案
  • 五星知识达人网友:话散在刀尖上
  • 2021-02-14 12:47
孩子,我看了你的程序。
语法没问题,至少这段没问题,但是有一个经验的地方就是所有在用ADO连接Acesss数据库进行更换或者更改的时候,字段名称最好不叫“PassWord”,你的错误就是这个意思:Unhandled exception in HospitalRes.exe(KERNEL32.DLL):0xE06D7363:Microsoft C++ Exception,指针触发了被保护的内存。
用PassWord容易触发系统的底层保护机制。
改个字段名字吧,应该就好了
再不行Q我:36829664。
全部回答
  • 1楼网友:佘樂
  • 2021-02-14 13:40
你好! 母鸡啊母鸡啊 如果对你有帮助,望采纳。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯