中国开发网: 论坛: 程序员情感CBD: 贴子 338075
没脾气2x: 小聪明害死人啊:
以前这么写的:
sql = "SELECT * FROM forum_msgs "
+ " WHERE owner_board_name = @BoardName "
+ " AND ( "
+ " ( @BlockIDFrom >= @BlockIDTo "
+ " AND ( ( BlockID > @BlockIDTo AND @withequal = 0 ) OR ( BlockID >= @BlockIDTo AND @withequal = 1 ) ) "
+ " AND ( BlockID <= @BlockIDFrom ) ) "
+ " OR ( @BlockIDFrom < @BlockIDTo "
+ " AND ( BlockID >= @BlockIDFrom AND @BlockIDFrom <> 0 ) "
+ " AND ( ( BlockID < @BlockIDTo AND @withequal = 0 ) OR ( BlockID <= @BlockIDTo AND @withequal = 1 ) ) ) "
+ " ) "
+ " ORDER BY BlockID DESC, BlockOrderID ";

IDataReader drMessageTree = SqlDbProvider.ExecuteReader( sql,
SqlHelper.MakeInParam( "@BoardName", BoardName ),
SqlHelper.MakeInParam( "@BlockIDFrom", nFirstBlockID ),
SqlHelper.MakeInParam( "@BlockIDTo", nNextBlockID ),
SqlHelper.MakeInParam( "@withequal", nBlockCount < PageSize + 1 ? 1 : 0 ) );


现在改成这样了:

sql = "SELECT * FROM forum_msgs "
+ " WHERE owner_board_name = @BoardName "
+ " AND ( ";

if ( nFirstBlockID >= nNextBlockID )
{
if ( nBlockCount < PageSize + 1 )
{
sql += " ( BlockID >= @BlockIDTo ) ";
}
else
{
sql += " ( BlockID > @BlockIDTo ) ";

}
sql += " AND ( BlockID <= @BlockIDFrom ) ";
}
else
{
sql += " ( BlockID >= @BlockIDFrom AND @BlockIDFrom <> 0 ) AND ";

if ( nBlockCount < PageSize )
{
sql += " ( BlockID <= @BlockIDTo ) ";
}
else
{
sql += " ( BlockID < @BlockIDTo ) ";
}
}

sql += " ) "
+ " ORDER BY BlockID DESC, BlockOrderID ";

IDataReader drMessageTree = SqlDbProvider.ExecuteReader( sql,
SqlHelper.MakeInParam( "@BoardName", BoardName ),
SqlHelper.MakeInParam( "@BlockIDFrom", nFirstBlockID ),
SqlHelper.MakeInParam( "@BlockIDTo", nNextBlockID ) );
Notemper2x 3.1 ( ̄ε( ̄#)
没脾气2x 之 个人综合篇: http://notemper2x.cndev.org/
我的 panoramio 相册: http://panoramio.com/user/zhaixudong
我的 flickr相册: http://www.flickr.com/photos/notemper2x/



QQ号20250出售,售价400,000元整(5位、皇冠80级、VIP7)a

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录