工作中一个想不到错误
一直想写一下博客,可是一直在忙一个活。今天算是总框架做出来了。所以偷闲一会。
在这里写一下,我在以前做活当中疏忽的一个错误。希望能对大家有所帮助。简单描述一下。
首先这里有两条语句,看看他们有什么不同。
这里主要是阐述问题,所以语句比较简单。而且没有什么上下文。
string sql1="select * from" + tblName + "where id=" + Id.ToString();
string sql2="select * from " + tblName + " where id=" + Id.ToString();
初看一下,没有什么区别。可是里面大有文章。
sql1这条语句是执行不起来的。编译时一点错误也没有。但是到执行时,他就会给你跳出来异常。而且你按照习惯还很难找出来。
sql2这条语句没有任何错误正常执行。
sql1错在哪里。看一下下面就了解。而且恍然大悟。
sql1相当于select * fromtblnamewhere id=Id(这里是Id的字符串形式)
看到了吧,罪魁祸首在连接字符“+”,它在连接到字符串里时,是没有空格的。就成为上面的形式了。
sql2相当于select * from tblname where id=Id(这里是Id的字符串形式)
没有任何问题。所以我们要小心连接陷阱。
浙公网安备 33010602011771号