sql ="insert into note(title,author,content) values(?,?,?)"
优点就是:1、防止SQL注入
2、参数不用引号(出错率低)
缺点:要逐个把参数对应的写麻烦了一点,不过现在程序基本都是带参数的,这样安全性高了好多
你需要了解sql语句的拼接和一般字符串的拼接的异同.例如:在sql脚本语句中,字符串用单引号'',这些在C#语句中拼接"sql语句"字符串时需要注意.
你可以在vs.net中写一个用字符串拼接的sql语句,最后把它赋值给一个字符串对象.然后用断点调试区查看生成的sql语句的结果,一般sql语句较长,验证的方式都是把这段sql语句copy到sql sever的脚本文件(.sql)中去执行一下,就知道是否正确了.当然也有先在sql server 中调试好拼接字符串后再copy到程序代码中去修改的.具体方式不定.
(以上是介绍的拼接sql语句方法,不过这种方式的安全性不高,常见的sql注入式攻击就是利用的拼接sql语句的缺陷.)
你还可以考虑使用带参数的存储过程来实现,这个就需要了解存储过程的一些知识了,具体的方法我就不介绍了,关于带参数的存储过程,网上有很多例子参考.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)