/// <summary> /// 这是一个完整的返回文章列表的方法,内部使用,根据不同的应用场景设置不同的参数来返回数据 /// </summary> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <param name="classID"></param> /// <param name="AuthorID"></param> /// <returns></returns> private List <mArticle> GetArticleList(cGlobal.OrderBy orderby, cGlobal.OrderByRole orderByRole, int pageIndex, int pageSize = 10, int classID = 0, int AuthorID = -1) { DAL.dArticle da = new dArticle(); int rowCount = 0; DataTable d = da.GetArticleList(pageIndex, pageSize, out rowCount, orderby, orderByRole, -1, -1); if (d == null) { return(null); } //将datatable转换为list,这个过程可以写一个公共类来处理,但在这个项目就直接转了 List <mArticle> listArticle = new List <mArticle> (); for (int i = 0; i < d.Rows.Count; i++) { mArticle ma = new mArticle(); ma.ID = int.Parse(d.Rows[i]["ID"].ToString()); ma.aCode = d.Rows[i]["aCode"].ToString(); ma.ClassID = int.Parse(d.Rows[i]["ClassID"].ToString()); ma.CoverImg = d.Rows[i]["CoverImg"].ToString(); ma.Title = d.Rows[i]["Title"].ToString(); ma.PublishDate = DateTime.Parse(d.Rows[i]["PublishDate"].ToString()); ma.AuthorID = int.Parse(d.Rows[i]["AuthorID"].ToString()); ma.Author = d.Rows[i]["Author"].ToString(); ma.Remark = d.Rows[i]["Remark"].ToString(); ma.Content = d.Rows[i]["Content"].ToString(); ma.PraiseCount = int.Parse(d.Rows[i]["ZanCount"].ToString()); ma.ClickCount = int.Parse(d.Rows[i]["ClickCount"].ToString()); ma.CommentCount = int.Parse(d.Rows[i]["CommentCount"].ToString()); ma.Tag = d.Rows[i]["Tag"].ToString(); ma.State = int.Parse(d.Rows[i]["State"].ToString()); listArticle.Add(ma); } return(listArticle); }
/// <summary> /// 获取教程文章列表 /// </summary> /// <param name="startIndex"></param> /// <param name="step"></param> /// <param name="rowCount">返回总条数</param> /// <param name="orderby"></param> /// <param name="orderByRole"></param> /// <param name="ClassID">如果查询所有,请输入-1</param> /// <param name="authorID">如果查询所有,请输入-1</param> /// <returns></returns> public DataTable GetArticleList(int startIndex, int step, out int rowCount, cGlobal.OrderBy orderby, cGlobal.OrderByRole orderByRole, int ClassID, int authorID) { string sql = "select * from sys_article "; string sqlWhere = string.Empty; if (ClassID > -1) { sqlWhere += " and ClassID=" + ClassID; } if (authorID > -1) { sqlWhere += " and AutherID=" + ClassID; } if (!string.IsNullOrEmpty(sqlWhere)) { sql = sql + " where " + sqlWhere.Substring(3, sqlWhere.Length - 3); } switch (orderby) { case cGlobal.OrderBy.ID: sql += " order by ID"; break; case cGlobal.OrderBy.PublishDate: sql += " order by PublishDate"; break; case cGlobal.OrderBy.Count: sql += " order by CommentCount"; break; default: sql += " order by ID"; break; } switch (orderByRole) { case cGlobal.OrderByRole.Asc: break; case cGlobal.OrderByRole.Desc: sql += " DESC"; break; } int rowIndex = step * (startIndex - 1); sql += " limit " + rowIndex + "," + step + ";"; sql += "select count(ID) from sys_article "; DataSet ds = SqlHelper.ExecuteDataset(sql); DataTable tb = null; rowCount = 0; if (ds != null || ds.Tables.Count > 0) { tb = ds.Tables[0]; if (ds.Tables.Count > 1) { int.TryParse(ds.Tables[1].Rows[0][0].ToString(), out rowCount); } } return(tb); }