向数据库中存数据时字符串中含有单撇号'的问题?

时间:2022-09-30 07:34:06
当向数据库中插入数据时(调用存储过程除外),若字符串中含有单撇号',就会出现错误。现在我在存储的时候利用str.Replace("'","~");的方法将'替换成~,读取时再替换回来。
问题:
  如果从数据库中读取大量的数据,返回一个DataSet,那时,我再逐一替换字符串,是不是效率会很低?有没有其他方法解决这一问题?

14 个解决方案

#1


你入库的时候 替换出来 这时候没什么问题,毕竟入库不是一下入几万个数据

读出来的时候先不急替换,  用到哪  替换哪吧

#2


应该在保存之前做替换

#3


用参数不就解决了吗?
Select * from Usertable where User=@user

#4


在存的时候str.Replace("'","''");
取得时候不用replace了

#5


sql="insert into table1 (aa,bb,cc) select aaa,bbb,ccc from table2"
比如 变量 cc含有“'”那么就应该这样子写:

sql="insert into table1 (aa,bb," & """" & cc & """) select aaa,bbb,ccc from table2"
你试一下,我之前也碰到过这个问题,然后这样写就解决问题了。

#6


推荐使用参数方式

#7


在存的时候str.Replace("'","''");
取得时候不用replace了

#8


用参数解决的办法不错。除了'外,还有别的什么字符在插入SqlServer时需要注意的,比如说%,是不是问题也很大,我指的是在查询的时候,如果利用统配符进行查询,那么含有%的字段会不会有问题?

#9


用参数的办法就很好,就是写起来罗嗦

#10


like this!

set QUOTED_IDENTIFIER off
update c_news set newstitle = "''''" where newsid = "000001"

#11


用参数应该较好。

#12


保存之前先 str=str.Replace("'","''"),然后再保存;

#13


严重同意
spland(spland)
 
在存的时候str.Replace("'","''");
取得时候不用replace了
  
 

#14


再SQLServer中除了'外还有别的特殊字符要注意吗?

#1


你入库的时候 替换出来 这时候没什么问题,毕竟入库不是一下入几万个数据

读出来的时候先不急替换,  用到哪  替换哪吧

#2


应该在保存之前做替换

#3


用参数不就解决了吗?
Select * from Usertable where User=@user

#4


在存的时候str.Replace("'","''");
取得时候不用replace了

#5


sql="insert into table1 (aa,bb,cc) select aaa,bbb,ccc from table2"
比如 变量 cc含有“'”那么就应该这样子写:

sql="insert into table1 (aa,bb," & """" & cc & """) select aaa,bbb,ccc from table2"
你试一下,我之前也碰到过这个问题,然后这样写就解决问题了。

#6


推荐使用参数方式

#7


在存的时候str.Replace("'","''");
取得时候不用replace了

#8


用参数解决的办法不错。除了'外,还有别的什么字符在插入SqlServer时需要注意的,比如说%,是不是问题也很大,我指的是在查询的时候,如果利用统配符进行查询,那么含有%的字段会不会有问题?

#9


用参数的办法就很好,就是写起来罗嗦

#10


like this!

set QUOTED_IDENTIFIER off
update c_news set newstitle = "''''" where newsid = "000001"

#11


用参数应该较好。

#12


保存之前先 str=str.Replace("'","''"),然后再保存;

#13


严重同意
spland(spland)
 
在存的时候str.Replace("'","''");
取得时候不用replace了
  
 

#14


再SQLServer中除了'外还有别的特殊字符要注意吗?