导航
  • 主页
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm
  • WPF
  • 问答

请教SQL语句中双引号的解决办法

quou2002 2005-09-23 05:32:13
查询语句如下:(Edit.text为一控件值)
update Table1 set Field1 = "' + Edit1.text + '" where ...

如果上面Edit1.text中出现双引号,那么这条SQL语句就会执行失败。
...全文
341 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
quou2002 2005-09-24
可能我表达得不是很清楚,发贴的时候赶着下班 :)

其实是这样的:文本框控件里得到的值是类似于网页源代码的一大段文本,其中很多地方有双引号,单引号,而我想将其全部原样存入数据库中的某一字段。要是数据库是SQL,我还可以用存储过程传参数,可是现在的数据库用的是ACCESS。

wuyi8808兄的replace方法,我没完全弄懂,是将一个单引号变成2个单引号吗?可行吗?在文本过大的时候效率应该不好吧

其实我之所以将此贴发到C#区,是想请教C#中有没有自动转义的函数。
回复
zhongwanli 2005-09-23
SQLParameter
回复
zhongwanli 2005-09-23
如果用这种方式,楼主防止不了恶意SQL 的注入,建议用参数的形式
回复
liufangzhu 2005-09-23
用Replace
wuyi8808(tm) studio   :) 的为正解
回复
xk820901 2005-09-23
update Table1 set Field1 = "'" + Edit1.text + "'" where ...
回复
jilate 2005-09-23
1种为楼上的方法
另外一种用参数化来做
回复
-空军- 2005-09-23
string s = Edit1.Text.Replace("'", "''");
update Table1 set Field1 = "' + s + '" where ...
回复
charles_y 2005-09-23
没看懂,你这样写也能通过编译?
回复
pupo 2005-09-23
过滤掉或者再前面加个转义符
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.