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

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

如果上面Edit1.text中出现双引号,那么这条SQL语句就会执行失败。
...全文
510 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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种为楼上的方法
另外一种用参数化来做
wuyi8808 2005-09-23
  • 打赏
  • 举报
回复
string s = Edit1.Text.Replace("'", "''");
update Table1 set Field1 = "' + s + '" where ...
charles_y 2005-09-23
  • 打赏
  • 举报
回复
没看懂,你这样写也能通过编译?
pupo 2005-09-23
  • 打赏
  • 举报
回复
过滤掉或者再前面加个转义符

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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