我现在需要用update修改表名为table1 列名称(字段)为booknum 行名称为bb的数据
(bb的数据类型为整型)
具体语句:
pConn->Execute("UPDATE table1 SET booknum = booknum-1, where bb = 11";NULL,adCmdText);
当条件语句where后使用常量编译可以通过,程序运行也没问题,如上。
但现在我需要把常量改成一个控件里添加的变量m_id(m_id的数据类型为CString)
将上述语句写成pConn->Execute("UPDATE table1 SET booknum = booknum-1, where bb = m_id";NULL,adCmdText);
编译没问题,程序运行出错了,调试到这一语句也报错了。
在网上找过各种解决办法,比如把变量改成"'+m_id+'" 加单引号、双引号、+、& 各种形式都试过了,都没用。
问过老师,他说用声明一个CString的变量,然后调用Format语句先将原本Update里的语句怎样怎样,然后再放到Update里调用修改数据库的值。
这个方法我事后试了一下,语句不大会写,编译都过不了……
我是新手,现在急着把程序做出来,没时间搞清楚连接数据库的原理了!
跪请高手!我卡在这个地方好多天了,试过很多方法,都没解决!
如果程序能运行成功,追加50分!
我按你说的改成这个样子:
_bstr_t sql;
CString str, str1;
str1 = "booknum-1";
str = "m_id";
sql = "UPDATE table1 SET booknum = '"+str1+"' where bb <= '"+str+"' ";
pConn->Execute(sql, NULL, adCmdText);
或者把where条件句改成 bb = '"+str+"'
编译通过了 但是程序运行还是意外中止了,弹出Debug Error! abnormal program termination
调试到上述语句的最后一句时也出错了……
到底哪里有问题。 我纠结T_T
C++连接Access数据库:update语句中where条件用变量的问题
答案:1 悬赏:80 手机版
解决时间 2021-02-22 19:26
- 提问者网友:太高姿态
- 2021-02-22 16:00
最佳答案
- 五星知识达人网友:痴妹与他
- 2021-02-22 16:17
pConn->Execute("UPDATE table1 SET booknum = booknum-1, where bb = m_id";NULL,adCmdText);
正确的应该是这样的
_bstr_t sql;
CString str, str1; //这里是要修改的数据
sql = "UPDATE table1 set booknum = '"+str1+"' where bb <= '"+str+'""; 字符串旁边的格式要写对
pConn->Execute(sql;NULL,adCmdText);
这样应该是对了 你试下。。。。
正确的应该是这样的
_bstr_t sql;
CString str, str1; //这里是要修改的数据
sql = "UPDATE table1 set booknum = '"+str1+"' where bb <= '"+str+'""; 字符串旁边的格式要写对
pConn->Execute(sql;NULL,adCmdText);
这样应该是对了 你试下。。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯