MFC中使用insert语句插入时的问题
函数通过前面传的对象过来,将它插入数据库中,执行下面一句代码时出错:

     strSql.Format(_T("INSERT INTO Bill_Info (Bill_ID,Buyer_Name,Buyer_Book,Buyer_State,Price) values('%s','%s','%s','%d','%f')"),
    b.getbid(),b.getbname(),b.getbbook(),b.getbstate(),b.getprice());

报错为图片说明

自动窗口中的数值图片说明

求问是什么问题啊

5个回答

你的字符串里有中文括号,将来执行sql的时候会出错。
你可以把5个参数放前面,单独执行,看看是不是他们出错了。
如:

 strSql.Format("%s",b.getbid());
strSql.Format("%s",b.getbname());
strSql.Format("%s",b.getbbook());
strSql.Format("%d",b.getbbook());
strSql.Format("%f",b.getprice());

strSql.Format(_T("INSERT INTO Bill_Info (Bill_ID,Buyer_Name,Buyer_Book,Buyer_State,Price) values('%s','%s','%s','%d','%f')"),
    b.getbid(),b.getbname(),b.getbbook(),b.getbstate(),b.getprice());
qq_27183003
ysuwood 那就是说你的b有问题。
大约 4 年之前 回复
q374081578
q374081578 回复ysuwood: 好像真是这里的问题!每个成员format后都变成了乱码,该咋整
大约 4 年之前 回复

楼主你好

崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。

设断点,单步执行。检查一下,b的各个成员与输出格式是否相符。

q374081578
q374081578 回复ysuwood: b的成员都有值,类型也没错
大约 4 年之前 回复

谢谢楼上,照着弄了下不知道是弄得不对还是怎么的,没搞出啥毛病。。。

感谢各位,解决了
(CString)b.getbid().cstr()

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问