public void GetExtendValuesList(int siteId, int relationType, IList <int> idList, DataReaderFunc func) { if (idList == null || idList.Count == 0) { return; } string ids = ""; int tmpInt = 0; foreach (int i in idList) { if (tmpInt++ != 0) { ids += ","; } ids += i.ToString(); } base.ExecuteReader(SqlQueryHelper.Format(DbSql.DataExtend_GetExtendValuesList, new object[, ] { { "@siteId", siteId }, { "@relationType", relationType } }, ids ), func); }
public void SaveLinksOfContent(string contentType, int contentId, IList <IContentLink> list) { if (list.Count == 0) { return; } SqlQuery[] querys = new SqlQuery[list.Count]; int i = 0; foreach (IContentLink link in list) { querys[i++] = SqlQueryHelper.Format( (link.Id <= 0 ? DbSql.Link_InsertRelatedLink:DbSql.Link_UpdateRelatedLink), new object[, ] { { "@contentType", contentType }, { "@contentId", contentId }, { "@id", link.Id }, { "@relatedSiteId", link.RelatedSiteId }, { "@relatedContentId", link.RelatedContentId }, { "@relatedIndent", link.RelatedIndent }, { "@enabled", link.Enabled } }); } base.ExecuteNonQuery(querys); }
public void InsertDataExtendFields(ExtendRelationType relationType, int relationId, IDictionary <int, string> extendData) { if (extendData.Count == 0) { return; } string sql = base.OptimizeSql(DbSql.DataExtend_InsertOrUpdateFieldValue); IList <SqlQuery> querys = new List <SqlQuery>(); querys.Add(SqlQueryHelper.Format(DbSql.DataExtend_ClearupExtendFielValue, new object[, ] { { "@relationType", relationType }, { "@relationId", relationId } } )); foreach (int key in extendData.Keys) { if (!String.IsNullOrEmpty(extendData[key])) { querys.Add(new SqlQuery(sql, new object[, ] { { "@relationType", relationType }, { "@relationId", relationId }, { "@fieldId", key }, { "@fieldValue", extendData[key] } })); } } base.ExecuteNonQuery(querys.ToArray()); }
public void ReadLinksOfContent(string contentType, int contentId, DataReaderFunc func) { base.ExecuteReader( SqlQueryHelper.Format(DbSql.Link_GetRelatedLinks, new object[, ] { { "@contentType", contentType }, { "@contentId", contentId } }), func); }
public void GetSiteLinkById(int siteId, int linkId, DataReaderFunc func) { base.ExecuteReader( SqlQueryHelper.Format(DbSql.Link_GetSiteLinkById, new object[, ] { { "@siteId", siteId }, { "@linkId", linkId } }), func); }
/// <summary> /// 获取所有的友情链接 /// </summary> /// <returns></returns> public void GetAllSiteLinks(int siteId, SiteLinkType type, DataReaderFunc func) { base.ExecuteReader( SqlQueryHelper.Format(DbSql.Link_GetSiteLinksByLinkType, new object[, ] { { "@siteId", siteId }, { "@linkType", (int)type } }), func); }
public void RemoveRelatedLinks(string contenType, int contentId, string ids) { base.ExecuteNonQuery( SqlQueryHelper.Format(DbSql.Link_RemoveRelatedLinks, new object[, ] { { "@contentType", contenType }, { "@contentId", contentId } }, ids)); }
/************ 分页 ****************/ /// <summary> /// 获取栏目分页文档 /// </summary> /// <param name="siteId"></param> /// <param name="lft"></param> /// <param name="pageSize"></param> /// <param name="skipSize"></param> /// <param name="currentPageIndex"></param> /// <param name="rgt"></param> /// <param name="recordCount"></param> /// <param name="pages"></param> /// <returns></returns> public DataTable GetPagedArchives( int siteId, int[] catIdArray, int pageSize, int skipSize, ref int currentPageIndex, out int recordCount, out int pages) { object[,] data = new object[, ] { { "@siteId", siteId }, }; String catIdArrayString = this.IntArrayToString(catIdArray); String sql = SQLRegex.Replace(DbSql.ArchiveGetPagedArchivesCountSqlPagerqurey, m => { switch (m.Groups[1].Value) { case "catIdArray": return(catIdArrayString); } return(String.Empty); }); //获取记录条数 recordCount = int.Parse(base.ExecuteScalar(SqlQueryHelper.Format(sql, data)).ToString()); pages = recordCount / pageSize; if (recordCount % pageSize != 0) { pages++; } //验证当前页数 if (currentPageIndex > pages && currentPageIndex != 1) { currentPageIndex = pages; } if (currentPageIndex < 1) { currentPageIndex = 1; } //计算分页 int skipCount = pageSize * (currentPageIndex - 1); //如果调过记录为0条,且为OLEDB时候,则用sql1 sql = DbSql.ArchiveGetPagedArchivesByCategoryIdPagerquery; sql = SQLRegex.Replace(sql, m => { switch (m.Groups[1].Value) { case "catIdArray": return(catIdArrayString); case "skipsize": return((skipCount + skipSize).ToString()); case "pagesize": return(pageSize.ToString()); } return(null); }); return(base.GetDataSet(SqlQueryHelper.Format(sql, data)).Tables[0]); }
public void GetExtendFieldByName(int siteId, string name, string type, DataReaderFunc rd) { base.ExecuteReader( SqlQueryHelper.Format(DbSql.DataExtend_GetExtendFieldByName, new object[, ] { { "@siteId", siteId }, { "@name", name }, { "@type", type } }), rd); }
public int GetCategoryExtendRefrenceNum(int siteId, int categoryId, int extendFieldId) { return(int.Parse(base.ExecuteScalar( SqlQueryHelper.Format(DbSql.DataExtend_GetCategoryExtendRefrenceNum, new object[, ] { { "@siteId", siteId }, { "@categoryId", categoryId }, { "@fieldId", extendFieldId } }) ).ToString())); }
public void SaveSortNumber(int archiveId, int sortNumber) { base.ExecuteNonQuery( SqlQueryHelper.Format(DbSql.ArchiveUpdateSortNumber, new object[, ] { { "@archiveId", archiveId }, { "@sort_number", sortNumber }, })); }
public void GetArchivesExtendValues(int siteId, int relationType, string categoryTag, int number, int skipSize, DataReaderFunc func) { base.ExecuteReader( SqlQueryHelper.Format(DbSql.Archive_GetArchivesExtendValues, new object[, ] { { "@siteId", siteId }, { "@tag", categoryTag }, { "@relationType", relationType } }, skipSize.ToString(), number.ToString() ), func); }
public int GetMaxSortNumber(int siteId) { object obj = base.ExecuteScalar( SqlQueryHelper.Format(DbSql.ArchiveGetMaxSortNumber, new object[, ] { { "@siteId", siteId }, })).ToString(); if (obj == DBNull.Value || (string)obj == "") { return(0); } return(int.Parse(obj.ToString())); }
public void GetSelftAndChildArchiveExtendValues(int siteId, int relationType, int lft, int rgt, int number, int skipSize, DataReaderFunc func) { /* * base.ExecuteReader( * new SqlQuery(String.Format(base.OptimizeSQL(SP.Archive_GetSelfAndChildArchives), number), * new object[,]{ * }), func * ); */ // throw new Exception( String.Format(DbSql.Archive_GetSelfAndChildArchiveExtendValues,skipSize.ToString(),number.ToString())); base.ExecuteReader( SqlQueryHelper.Format(DbSql.Archive_GetSelfAndChildArchiveExtendValues, new object[, ] { { "@siteId", siteId }, { "@lft", lft }, { "@rgt", rgt }, { "@relationType", relationType } }, skipSize.ToString(), number.ToString() ), func); }
/// <summary> /// 在指定栏目下搜索关键词相关的内容 /// </summary> /// <param name="categoryRgt"></param> /// <param name="keyword"></param> /// <param name="pageSize"></param> /// <param name="currentPageIndex"></param> /// <param name="recordCount"></param> /// <param name="pageCount"></param> /// <param name="orderby"></param> /// <param name="siteId"></param> /// <param name="categoryLft"></param> /// <param name="func"></param> /// <returns></returns> public void SearchArchivesByCategory(int siteId, int categoryLft, int categoryRgt, string keyword, int pageSize, int currentPageIndex, out int recordCount, out int pageCount, string orderby, DataReaderFunc func) { string condition = SqlConst.Archive_NotSystemAndHidden; if (String.IsNullOrEmpty(orderby)) { orderby = String.Intern("ORDER BY $PREFIX_archive.sort_number DESC"); } object[,] data = new object[, ] { { "@siteId", siteId }, { "@lft", categoryLft }, { "@rgt", categoryRgt } }; //为第一页时 const string sql1 = @"SELECT TOP $[pagesize] $PREFIX_archive.id AS ID,* FROM $PREFIX_archive INNER JOIN $PREFIX_category ON $PREFIX_archive.[CgID]=$PREFIX_category.id WHERE $[condition] AND $PREFIX_category.site_id=@siteId AND ($PREFIX_category.lft>=@lft AND $PREFIX_category.rgt<=@rgt) AND ([Title] LIKE '%$[keyword]%' OR [Outline] LIKE '%$[keyword]%' OR [Content] LIKE '%$[keyword]%' OR [Tags] LIKE '%$[keyword]%') $[orderby],$PREFIX_archive.id"; //记录数 recordCount = int.Parse(base.ExecuteScalar( SqlQueryHelper.Format(DbSql.ArchiveGetSearchRecordCountByCategoryId, data, keyword, condition )).ToString()); //页数 pageCount = recordCount / pageSize; if (recordCount % pageSize != 0) { pageCount++; } //对当前页数进行验证 if (currentPageIndex > pageCount && currentPageIndex != 1) { currentPageIndex = pageCount; } if (currentPageIndex < 1) { currentPageIndex = 1; } //跳过记录数 int skipCount = pageSize * (currentPageIndex - 1); string sql = skipCount == 0 && base.DbType == DataBaseType.OLEDB ? sql1 : DbSql.ArchiveGetPagedSearchArchivesByCategoryId; sql = SQLRegex.Replace(sql, (match) => { switch (match.Groups[1].Value) { case "siteid": return(siteId.ToString()); case "condition": return(condition); case "pagesize": return(pageSize.ToString()); case "skipsize": return(skipCount.ToString()); case "keyword": return(keyword); case "orderby": return(orderby); } return(null); }); base.ExecuteReader(SqlQueryHelper.Format(sql, data), func); }
/// <summary> /// 搜索关键词相关的内容 /// </summary> /// <param name="siteId"></param> /// <param name="categoryRgt"></param> /// <param name="onlyMatchTitle"></param> /// <param name="keyword"></param> /// <param name="pageSize"></param> /// <param name="currentPageIndex"></param> /// <param name="recordCount"></param> /// <param name="pageCount"></param> /// <param name="orderby"></param> /// <param name="func"></param> /// <param name="categoryLft"></param> /// <returns></returns> public void SearchArchives(int siteId, int categoryLft, int categoryRgt, bool onlyMatchTitle, string keyword, int pageSize, int currentPageIndex, out int recordCount, out int pageCount, string orderby, DataReaderFunc func) { base.CheckSqlInject(keyword, orderby); StringBuilder sb = new StringBuilder(SqlConst.Archive_NotSystemAndHidden); if (siteId > 0) { sb.Append(" AND $PREFIX_category.site_id=").Append(siteId.ToString()); } if (categoryLft > 0 && categoryRgt > 0) { sb.Append(" AND ($PREFIX_category.lft>=").Append(categoryLft.ToString()) .Append(" AND $PREFIX_category.rgt<=").Append(categoryRgt).Append(")"); } if (onlyMatchTitle) { sb.Append(" AND title LIKE '%").Append(keyword).Append("%'"); } else { sb.Append(" AND ( title LIKE '%").Append(keyword).Append("%' OR outline LIKE '%").Append(keyword).Append("%' OR content LIKE '%").Append(keyword).Append("%')"); } string condition = sb.ToString(); //排序规则 if (String.IsNullOrEmpty(orderby)) { orderby = String.Intern("ORDER BY $PREFIX_archive.sort_number DESC"); } //记录数 recordCount = int.Parse(base.ExecuteScalar(SqlQueryHelper.Format(DbSql.Archive_GetSearchRecordCount, condition)).ToString()); //页数 pageCount = recordCount / pageSize; if (recordCount % pageSize != 0) { pageCount++; } //对当前页数进行验证 if (currentPageIndex > pageCount && currentPageIndex != 1) { currentPageIndex = pageCount; } if (currentPageIndex < 1) { currentPageIndex = 1; } //跳过记录数 int skipCount = pageSize * (currentPageIndex - 1); //如果调过记录为0条,且为OLEDB时候,则用sql1 string sql = DbSql.Archive_GetPagedSearchArchives; sql = SQLRegex.Replace(sql, (match) => { switch (match.Groups[1].Value) { case "condition": return(condition); case "pagesize": return(pageSize.ToString()); case "skipsize": return(skipCount.ToString()); case "orderby": return(orderby); } return(null); }); base.ExecuteReader(base.NewQuery(sql, null), func); }