sql语句里的特殊字符

hebeijg 2008-09-26 03:56:26
现在碰到这样一个问题,就是sql里如果碰到'单引号,sql语句会出错。
因为设计的问题,在写代码的时候没有进行sql检查,就是把一个'替换成两个,
现在都出版本了才发现,请问有什么办法可以解决呢?
每一个sql里的输入项重新进行检查,不现实,太多了。
我想在数据层解决,因为数据层就几个函数,所有的sql都调用这里,

请问有办法解决吗?

谢谢
...全文
274 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
hebeijg 2008-10-07
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 jhdxhj 的回复:]
你应该考虑用传参数来写SQL语句的,或者采用存储过程也可以的,这样替换不是个好办法
[/Quote]

晕,我就是不知道什么叫传参啊
jhdxhj 2008-10-07
  • 打赏
  • 举报
回复
你应该考虑用传参数来写SQL语句的,或者采用存储过程也可以的,这样替换不是个好办法
knight827 2008-10-07
  • 打赏
  • 举报
回复
string sql = "insert into [table](name)values('what's up')

what's up 是直接插入 还是以变量插入的。如:string str1="what's up";
为什么要在sql中改 不能在str1上替换吗?
hebeijg 2008-10-07
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 delphi_new 的回复:]
LZ,没有办法,只能改,
以后记住了,一定要用参数形式,否则后悔的是自己
[/Quote]

请问什么叫参数形式呢
ZKM_ZHANG 2008-09-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chen_lichao 的回复:]
用单引号注释
string sql = "insert into [table](name)values('what''s up')";
[/Quote]
支持!
注册失败 2008-09-27
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 hebeijg 的回复:]
我是最近才加到这个项目组的,
最郁闷的是 这个问题是我测出来的。
结果经理就要我改,

别人都没有测出来,都发布版本了,结果我测出来了
还不如不测出来呢



[/Quote]

那你赶紧停收吧,比如%,_这些东西你还没测的吧?
B/S的系统么?还有&之类的没有测吧....
hdsharp 2008-09-26
  • 打赏
  • 举报
回复
直接用sqlparameter 就可以了...
superjackxing 2008-09-26
  • 打赏
  • 举报
回复
你的意思就是数据库的值里已经含有'号了是吗
还想懒够 2008-09-26
  • 打赏
  • 举报
回复
在SQL语句中,如果需要插入文本中含有单引号,需要替换为两个单引号,即'',这样在数据库中存放也只是一个,这是一个转义
  • 打赏
  • 举报
回复
哎,可怜.找个打字员去给你改吧.
hebeijg 2008-09-26
  • 打赏
  • 举报
回复
我是最近才加到这个项目组的,
最郁闷的是 这个问题是我测出来的。
结果经理就要我改,

别人都没有测出来,都发布版本了,结果我测出来了
还不如不测出来呢


hebeijg 2008-09-26
  • 打赏
  • 举报
回复
用了所有的办法了,都不行
「已注销」 2008-09-26
  • 打赏
  • 举报
回复
在数据层将传来的sql语句中的‘替换了不就得了!
zorro911 2008-09-26
  • 打赏
  • 举报
回复
把单引号替换掉
delphi_new 2008-09-26
  • 打赏
  • 举报
回复
LZ,没有办法,只能改,
以后记住了,一定要用参数形式,否则后悔的是自己
JustLovePro 2008-09-26
  • 打赏
  • 举报
回复
我就干过这种事,改吧~
注册失败 2008-09-26
  • 打赏
  • 举报
回复
同情下楼主
不过很不幸,对于你的情况来说,最简单的办法还是替换

写一个公用函数,到处去调用吧
qiejifuzao 2008-09-26
  • 打赏
  • 举报
回复
用\'不行吗?
chengxiaorong 2008-09-26
  • 打赏
  • 举报
回复
在表示层改好点··
海洋齐齐 2008-09-26
  • 打赏
  • 举报
回复
string sql = "insert into [table](name)values(replace('what''s up',''',''))";
试试吧,不知道行不行
加载更多回复(7)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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