如何将带斜杠“\”的字符串写入数据库?

dgzxzjm 2010-06-19 05:18:57
CString temp="d:\\sample";
SqlCmd.Format(_T("insert into mytable(FilePath) values(\'%s\')"),temp);
RibDatabase.ExecuteSQL(SqlCmd);


字段FilePath类型为varchar型(可变长字符型)

这样执行后,发现数据库表中记录里,自动将两个斜杠都略去了。如何解决?
...全文
908 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
不说害怕 2010-06-20
  • 打赏
  • 举报
回复
用 二进制来 保存看..
surf515 2010-06-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gz_qmc 的回复:]
那是对的啊:

\0表示1个字符,其代码0
\n表示1个字符,其代码16
那么,要表示一个\咋办呢?
如果用\s就变成了‘s'
C为了区分这个
就用\\表示'\'
D盘下的sample目录原本就是用d:\sample表示
当C语言这样认识就认成了 d: '\' sample
所以在C语言里面表示D盘下的sample目录
就变成了d:\\sample

楼主只需要记住,在C……
[/Quote]
ddd
dgzxzjm 2010-06-20
  • 打赏
  • 举报
回复
用#6的方法果然可行!谢谢!
许文君 2010-06-20
  • 打赏
  • 举报
回复
用这个 /
audioR8 2010-06-19
  • 打赏
  • 举报
回复
C和C++中,"\"是转义字符,是一个特殊的字符,如果你想输出它,你就要在它前边再加一个“\",表示输出一个"\"。
更详细的看:
http://dev.firnow.com/course/3_program/c++/cppsl/2008227/101927.html
zyq5945 2010-06-19
  • 打赏
  • 举报
回复
CString temp="d:\\\\sample";
dgzxzjm 2010-06-19
  • 打赏
  • 举报
回复
是变成了d:sample

两个\\都被略去,没写到数据库里,数据库里显示成d:sample

我现在用/代替了,反正也能用来表示文件路径
昨夜无风 2010-06-19
  • 打赏
  • 举报
回复
你说的自动将两个斜杠都去了什么意思?是变成了d:sample还是d:\sample

要是前者就是你输入的问题,后者就是对的。Format解析\\为\
邓学彬 2010-06-19
  • 打赏
  • 举报
回复
楼上说得对
gz_qmc 2010-06-19
  • 打赏
  • 举报
回复
那是对的啊:

\0表示1个字符,其代码0
\n表示1个字符,其代码16
那么,要表示一个\咋办呢?
如果用\s就变成了‘s'
C为了区分这个
就用\\表示'\'
D盘下的sample目录原本就是用d:\sample表示
当C语言这样认识就认成了 d: '\' sample
所以在C语言里面表示D盘下的sample目录
就变成了d:\\sample

楼主只需要记住,在C里边,表示 \ 时要用\\表示

dgzxzjm 2010-06-19
  • 打赏
  • 举报
回复
期待高手啊

4,012

社区成员

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

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