永发信息网

C++连接Access数据库:update语句中where条件用变量的问题

答案:1  悬赏:80  手机版
解决时间 2021-02-22 19:26
我现在需要用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
最佳答案
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);
这样应该是对了 你试下。。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中东汽修在什么地方啊,我要过去处理事情
台湾三小龙魔剪店美容部我想知道这个在什么地
【刘宋和北魏】为什么东晋不算南北朝?我问的
我问他如果我怀孕了,要还是不要,他说不要,
柴吕沺中心小学地址在什么地方,我要处理点事
哪里下载华硕K42J ATK0100电源管理驱动程序
一口鲜水饺我想知道这个在什么地方
二手车新上户车险怎么办
我和前夫结婚7年但离婚了快两年,一直有过意
鑫麟干锅辣鸭头宝泉岭店地址在什么地方,想过
我的答案和书上的答案不符,正确答案到底是谁
象棋让双车。
华庭名家装饰公司地址在哪,我要去那里办事
请问,关于换领第二代身份证的问题,请知情者
我陪我叔叔一起去贷款,我叔叔的车子被空放公
推荐资讯
北京至青岛多远
莹诚鞋业有限公司这个地址在什么地方,我要处
宏家装饰怎么去啊,有知道地址的么
-12减(-14)的绝对值加-2的绝对值-负7的绝对值
以下哪些是社团章程应该包括的内容()
暗黑2亚马逊全被动加点能玩么
开群百货怎么去啊,有知道地址的么
知乎"我的主页"里的性别、城市等信息是怎么设
三相三线制和三相四线制的区别
怡秀路/葛万线(路口)地址有知道的么?有点事
一个故事,禽兽和禽兽不如,在哪里可以看到
付款时手机验证码发送界面出来以后立刻退出会
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?