首页新闻找找看学习计划

@加不加的问题

0
[已关闭问题] 关闭于 2014-03-20 14:10

为什么要在“insert----”前加@,看好多人都加,为什么?如果只有一个new sqlParameter,还用在sql语句前面加@吗,好像有很少人加的

问题补充:

多行的sql语句换行可以不加@吗?我去掉了也没报错!但高手们都是加@的,但明显有个缺点就是增加了字符串的长度,还有可以做支持的优点吗?

HongMaJu的主页 HongMaJu | 菜鸟二级 | 园豆:208
提问于:2014-03-20 13:03
< >
分享
所有回答(6)
0

转义字符

空紫竹 | 园豆:204 (菜鸟二级) | 2014-03-20 13:05
0

同意楼上的,是用来防止sql注入的

单恋 | 园豆:678 (小虾三级) | 2014-03-20 13:13

额 这就能防止sql注入了啊

支持(0) 反对(0) lingjie-qiu | 园豆:1 (初学一级) | 2014-03-20 13:29

加上了,也将空格算到字符串的长度了,不过当没有那么多可变长度参数就不@到sql语句前了,你知道为什么吗?

支持(0) 反对(0) HongMaJu | 园豆:208 (菜鸟二级) | 2014-03-20 13:40

@红马車: 如何防止 SQL 注入攻击?

预防手段

  • 使用 TextBox.MaxLength 属性防止用户输入过长的字符,这样减少了贴入大量的脚本的可能性
  • 使用 ASP.NET 验证控件锁定错误的数据
  • 限制错误信息给出的提示,捕获到异常时只显示一些通用的信息,而不是显示 Exception.Message 属性中的信息,它会暴露出系统的攻击点
  • 更为重要的是,一定要小心去掉特殊字符,比如将单引号替换为两个单引号
  • 最好的解决方法是使用参数化的命令或者使用存储过程执行转义以防止 SQL 注入攻击

http://blog.csdn.net/on_my_way20xx/article/details/15336291

支持(0) 反对(0) 单恋 | 园豆:678 (小虾三级) | 2014-03-20 13:42
0

加@可以换行输入,我觉得不是用来防sql注入的

sam.c | 园豆:148 (初学一级) | 2014-03-20 13:35
1

@是用来转移字符串,跟注入没关系.@加不加没有任何关系

吴瑞祥 | 园豆:28770 (高人七级) | 2014-03-20 13:36

不加@也可以换行吗?c#不是忽略空格吗?

支持(0) 反对(0) HongMaJu | 园豆:208 (菜鸟二级) | 2014-03-20 13:45
0

如果SQL比较复杂,建议使用“@”来标记SQL字符串,最好对SQL进行格式化缩进处理。

Wind4 | 园豆:220 (菜鸟二级) | 2014-03-20 13:44

不加@也可以换行吗?c#不是忽略空格吗?

支持(0) 反对(0) HongMaJu | 园豆:208 (菜鸟二级) | 2014-03-20 13:48

@红马車: 你可以试试,呵呵。

支持(0) 反对(0) Wind4 | 园豆:220 (菜鸟二级) | 2014-03-20 14:09

@红马車: 使用“@”标记之后,字符串不会转义“\”,如:\r,\n,\\,\",\t,唯一的转义字符是“ " ”,使用两个引号转义“ "" ”。

例1:@"a\r\nb" == "a\\r\\nb"

例2:@"a""b" == "a\"b"

例3:

@"a

b" == "a\r\nb"

支持(0) 反对(0) Wind4 | 园豆:220 (菜鸟二级) | 2014-03-20 14:15
0

最前面那个 就是个转义的 加上可以换行写 其实加不加没关系

wolfy | 园豆:2636 (老鸟四级) | 2014-03-20 13:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册