Select * From T_RedTemplate_Type Where 1 = 1 和 Select * From T_RedTemplate_Type是一个意思 where 1=1 代表无论什么条件都成立,因为后面还可以跟着可有可无的其他条件,所以要用到where 1=1,给你个例子,或许会对你了解更有帮助 public DataSet GetList2(string strWhere) { StringBuilder strSql = new StringBuilder(); strSql.Append("select A.ID,A.User_ID,A.User_Name,B.Depart_Name "); strSql.Append(" FROM tbl_SS_UserTea as A left outer join tbl_SS_DepartManagement as B on A.FK_Department_Depart=B.PK_Depart_Num where 1=1"); if (strWhere.Trim() != "") { strSql.Append(" and " + strWhere); } return Common.Query(strSql.ToString()); }
if(..) sql += " and ...."如果没有前面这个1=1 ,那语法就会出错
string sql="Select * From T_RedTemplate_Type Where 1 = 1";
if(name!=""){
sql+=" and name ="+name;
}
1个是为方便拼接字符串,更多的参考
http://database.51cto.com/art/201009/224930.htm
public DataSet GetList2(string strWhere)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select A.ID,A.User_ID,A.User_Name,B.Depart_Name ");
strSql.Append(" FROM tbl_SS_UserTea as A left outer join tbl_SS_DepartManagement as B on A.FK_Department_Depart=B.PK_Depart_Num where 1=1");
if (strWhere.Trim() != "")
{
strSql.Append(" and " + strWhere);
}
return Common.Query(strSql.ToString());
}
就是条件很成立
Select * From T_RedTemplate_Type 跟这样写没什么区别吧
where 1=1 用于拼接后面的查询条件
1=1 只是一个为真的条件
那么后面的代码就必须判断 已有的SQL语句中是否存在 "where" 命令字符.这样就会很麻烦.
至于为什么后面加个where 1=1呢,
原因是这样的,就是为了好在后面添加 and ....这类的条件,用字符串拼接的方法去加的。
如果直接写Select * From T_RedTemplate_Type 的话后面肯定就不可能 再添加and... 条件了吧