为什么要在“insert----”前加@,看好多人都加,为什么?如果只有一个new sqlParameter,还用在sql语句前面加@吗,好像有很少人加的
多行的sql语句换行可以不加@吗?我去掉了也没报错!但高手们都是加@的,但明显有个缺点就是增加了字符串的长度,还有可以做支持的优点吗?
转义字符
同意楼上的,是用来防止sql注入的
额 这就能防止sql注入了啊
加上了,也将空格算到字符串的长度了,不过当没有那么多可变长度参数就不@到sql语句前了,你知道为什么吗?
@红马車: 如何防止 SQL 注入攻击?
预防手段:
加@可以换行输入,我觉得不是用来防sql注入的
@是用来转移字符串,跟注入没关系.@加不加没有任何关系
不加@也可以换行吗?c#不是忽略空格吗?
如果SQL比较复杂,建议使用“@”来标记SQL字符串,最好对SQL进行格式化缩进处理。
不加@也可以换行吗?c#不是忽略空格吗?
@红马車: 你可以试试,呵呵。
@红马車: 使用“@”标记之后,字符串不会转义“\”,如:\r,\n,\\,\",\t,唯一的转义字符是“ " ”,使用两个引号转义“ "" ”。
例1:@"a\r\nb" == "a\\r\\nb"
例2:@"a""b" == "a\"b"
例3:
@"a
b" == "a\r\nb"
最前面那个 就是个转义的 加上可以换行写 其实加不加没关系