为什么.net程序员不喜欢使用预处理sql语句
日题
实不相瞒,鄙人最近以前是搞JAVA的,最近又参加了一个.net项目。
发现代码使用的都是字符串拼接成的sql语句,要不就是存储过程
为什么不用预处理语句?象这样
SqlCommand sqlCmd = new SqlCommand(........) ;
sqlCmd. CommandText = ″insert into user( username, password) values (@ username, @ password) ″;
sqlCmd. Parameters. Add ("@ username", "aaaa") ;
sqlCmd. Parameters. Add ("@ password", "bbbbbbbb") ;
sqlCmd. Prepare( ) ;
sqlCmd. ExecuteNonQuery( ) ;
。。。。。。
预处理语句顾名思义就是预编译好的SQL程序,除了第一次需要解释编译外,性能与存储过程相当,为什么没人用??
------解决方案--------------------为什么没人用?? 如果你你看到的都没用,不是写程序的人不负责任,就是是存储过程传递参数,最终应该还是参数传递才行。仅仅拼接的SQL语句只能内部使用,和用户交互的场合不可使用,否则会有很大程度产生SQL注入,让你防不胜防。
------解决方案--------------------如果不重复执行,prepare啥用也没有
------解决方案--------------------LZ见过几个.net程序员写的.net程序?怎么就知道不喜欢用?
------解决方案--------------------