// Create Instance of Connection and Command Object // using( SqlConnection connection = GetSqlConnection() ) { SqlCommand command = new SqlCommand(databaseOwner + ".forums_Threads_GetThreadSet", connection); command.CommandType = CommandType.StoredProcedure;
ThreadSet threadSet = new ThreadSet(); StringBuilder sqlCountSelect = new StringBuilder("SELECT count(T.ThreadID) "); StringBuilder sqlPopulateSelect = new StringBuilder("SELECT T.ThreadID, HasRead = "); StringBuilder fromClause = new StringBuilder(" FROM " + this.databaseOwner + ".forums_Threads T "); StringBuilder whereClause = new StringBuilder(" WHERE "); StringBuilder orderClause = new StringBuilder(" ORDER BY ");
// 增加收藏判断 by venjiang 0911 if (favoriteOnly == true) { fromClause.Append("," + this.databaseOwner + ".forums_Favorites Fav "); }
// Ensure DateTime is min value for SQL // threadsNewerThan = SqlDataProvider.GetSafeSqlDateTime(threadsNewerThan);
// Construct the clauses #region Constrain Forums
// Contrain the selectivness to a set of specified forums. The ForumID is our // clustered index so we want this to be first if (forumID > 0) { whereClause.Append("T.ForumID = "); whereClause.Append(forumID); } else if (forumID < 0) { whereClause.Append("(T.ForumID = ");
// Get a list of all the forums the user has access to // ArrayList forumList = Forums.GetForums(userID, false, true);
for (int i = 0; i < forumList.Count; i++) {
if ( ((Forum) forumList[i]).ForumID > 0 ) { if ( (i + 1) < forumList.Count) { whereClause.Append( ((Forum) forumList[i]).ForumID + " OR T.ForumID = "); } else { whereClause.Append( ((Forum) forumList[i]).ForumID ); whereClause.Append(")"); } }
} } else { whereClause.Append("T.ForumID = 0 AND P.UserID = "); whereClause.Append(userID); whereClause.Append(" AND P.ThreadID = T.ThreadID "); fromClause.Append(", " + this.databaseOwner + ".forums_PrivateMessages P "); } #endregion
#region Constrain Date whereClause.Append(" AND StickyDate >= ''''"); whereClause.Append( threadsNewerThan.ToString( System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.SortableDateTimePattern )); whereClause.Append(" ''''"); #endregion
#region Constain Approval whereClause.Append(" AND IsApproved = 1");