工作中一个想不到错误

一直想写一下博客,可是一直在忙一个活。今天算是总框架做出来了。所以偷闲一会。

在这里写一下,我在以前做活当中疏忽的一个错误。希望能对大家有所帮助。简单描述一下。

首先这里有两条语句,看看他们有什么不同。

这里主要是阐述问题,所以语句比较简单。而且没有什么上下文。

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的字符串形式)

没有任何问题。所以我们要小心连接陷阱。

 

posted on 2009-04-20 10:57  lanjie  阅读(307)  评论(3)    收藏  举报