联合查询到gridview

  1 using com.DAL.Base;
  2 using DAL.ruanmou;
  3 using System;
  4 using System.Collections.Generic;
  5 using System.Data;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Web;
  9 using System.Web.UI;
 10 using System.Web.UI.WebControls;
 11 
 12 namespace ASP20170211
 13 {
 14     public partial class UnionSearch : System.Web.UI.Page
 15     {
 16         protected void Page_Load(object sender, EventArgs e)
 17         {
 18             BindData();
 19         }
 20         public int PageSize = 15;
 21         private int _page;
 22         public int PageIndex
 23         {
 24             get
 25             {
 26                 try
 27                 {
 28                     _page = Request.QueryString["page"] == null ? 1 : Convert.ToInt32(Request.QueryString["page"].ToString());
 29                 }
 30                 catch (Exception ex)
 31                 {
 32                     _page = 1;
 33                 }
 34                 return _page;
 35             }
 36             set { _page = value; }
 37         }
 38         List<dbParam> listPm = new List<dbParam>();
 39         public string GetSql()
 40         {
 41             StringBuilder sb = new StringBuilder();
 42             sb.Append("1=1");
 43             if (!string.IsNullOrEmpty(txtSUserName.Text.Trim()))
 44             {
 45                 sb.Append(" and UserName=@UserName");
 46                 listPm.Add(new dbParam() { ParamName = "@UserName", ParamValue = txtSUserName.Text.Trim() });
 47             }
 48             if (ddlPhase.SelectedIndex > 0)
 49             {
 50                 sb.Append(" and Phase=@Phase");
 51                 listPm.Add(new dbParam() { ParamName = "@Phase", ParamValue = ddlPhase.SelectedValue });
 52             }
 53             return sb.ToString();
 54         }
 55         public void BindData()
 56         {
 57             DataTable dt = StuAskDal.GetUserInnerAskDt(PageSize, PageIndex, GetSql(), listPm);
 58             GridView1.DataSource = dt;
 59             GridView1.DataBind();
 60         }
 61         /// <summary>
 62         /// 总页数
 63         /// </summary>
 64         /// <returns></returns>
 65         public int PageCount()
 66         {
 67             int iCount = StuAskDal.GetUserInnerAskCount(listPm, GetSql());
 68             if (iCount % PageSize == 0)
 69             {
 70                 return iCount / PageSize;
 71             }
 72             else
 73             {
 74                 double d = Convert.ToDouble(iCount) / Convert.ToDouble(PageSize);
 75                 return Convert.ToInt32(Math.Ceiling(d));
 76             }
 77         }
 78         /// <summary>
 79         /// 分页
 80         /// </summary>
 81         /// <returns></returns>
 82         public string GetPager()
 83         {
 84             StringBuilder sb = new StringBuilder();
 85             sb.Append(@"<div><a href=""/UnionSearch.aspx?page=1"">第一页</a></div>");
 86             if (PageIndex == 1)
 87             {
 88                 sb.Append(@"<div><a href=""javascript:;"">上一页</a></div>");
 89             }
 90             else
 91             {
 92                 sb.Append(string.Format(@"<div><a href=""/UnionSearch.aspx?page={0}"">上一页</a></div>", PageIndex - 1));
 93             }
 94             if (PageIndex == PageCount())
 95             {
 96                 sb.Append(@"<div><a href=""javascript:;"">下一页</a></div>");
 97             }
 98             else
 99             {
100                 sb.Append(string.Format(@"<div><a href=""/UnionSearch.aspx?page={0}"">下一页</a></div>", PageIndex + 1));
101             }
102             sb.Append(string.Format(@"<div><a href=""/UnionSearch.aspx?page={0}"">尾页</a></div>", PageCount()));
103             sb.Append(string.Format("<div>{0}/{1}</div>", PageIndex, PageCount()));
104             return sb.ToString();
105         }
106         protected void btnSel_Click(object sender, EventArgs e)
107         {
108             //自动执行Page_Load
109         }
110     }
111 }
UnionSearch
 1 using com.DAL.Base;
 2 using Model.ruanmou;
 3 using System;
 4 using System.Collections.Generic;
 5 using System.Data;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 
10 namespace DAL.ruanmou
11 {
12     //联合查询
13     public class StuAskDal : System.Web.UI.Page
14     {
15         public static BaseDAL<StuAsk> m_RNewsDal = new BaseDAL<StuAsk>();
16 
17         /// <summary>
18         /// 获取到当前条件下的记录数
19         /// </summary>
20         /// <param name="para"></param>
21         /// <param name="sWhere"></param>
22         /// <returns></returns>
23         public static int GetUserInnerAskCount(List<dbParam> para, string sWhere)
24         {
25             string sSql = string.Format(@"select UI.UserId from UserInfor 
26         UI inner join StuAsk SA on UI.UserId=SA.UserId where 1=1 and {0}", sWhere);
27             DataTable dt = SqlHelper.ExecuteDataTable(com.Model.Base.DataBaseEnum.sq_ruanmou, sSql, CommandType.Text, para);
28             return dt.Rows.Count;
29         }
30 
31         /// <summary>
32         /// 获取到当前条件下的datatable
33         /// </summary>
34         /// <param name="pagesize">每页显示多少条数据</param>
35         /// <param name="pageindex">页码</param>
36         /// <param name="sWhere">条件语句</param>
37         /// <param name="listPm">cmd参数</param>
38         /// <returns></returns>
39         public static DataTable GetUserInnerAskDt(int pagesize, int pageindex, string sWhere, List<dbParam> listPm)
40         {
41             string sSql = string.Format(@"select top {0}* 
42                                             from
43                                             (
44                                             select row_number() over(order by AskId) as rownumber,* from 
45                                             (select UI.UserId,UI.UserName,UI.Phase,SA.AskId,SA.Title,SA.AskCategory
46                                             from UserInfor UI inner join StuAsk SA on
47                                             UI.UserId=SA.UserId) UISA where {2}
48                                             )A
49                                             where rownumber>({1}-1)*{0}", pagesize, pageindex, sWhere);
50             DataTable dt = SqlHelper.ExecuteDataTable(com.Model.Base.DataBaseEnum.sq_ruanmou, sSql, CommandType.Text, listPm);
51             return dt;
52         }
53     }
54 }
 1 using com.DAL.Base;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7 using Model.ruanmou;
 8 using com.Utility;
 9 using System.Web;
10 
11 namespace DAL.ruanmou
12 {
13     public class RNewsDal : System.Web.UI.Page
14     {
15         public static BaseDAL<RNews> m_RNewsDal = new BaseDAL<RNews>();
16     }
17 }
RNewsDal
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using com.Model.Base;
 7 
 8 namespace Model.ruanmou
 9 {
10     public class RNews : BaseModel
11     {
12         public RNews() 
13         {
14             PrimaryKey = "NewsId";
15             DataBaseName = DataBaseEnum.sq_ruanmou;
16         }
17 
18         public int NewsId { get; set; }
19         public string Title { get; set; }
20         public string Text { get; set; }
21         public DateTime CreatedTime { get; set; }
22         public string NewsClass { get; set; }
23         public int ViewCount { get; set; }
24 
25     }
26 }
RNews
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 using com.Model.Base;
 7 
 8 namespace Model.ruanmou
 9 {
10     public class StuAsk : BaseModel
11     {
12         public StuAsk() 
13         {
14             PrimaryKey = "AskId";
15             DataBaseName = DataBaseEnum.sq_ruanmou;
16         }
17 
18         public int AskId { get; set; }
19         public string Title { get; set; }
20         public string Text { get; set; }
21         public int AskCategory { get; set; }//1表示前端,2表示数据库,3表示.net,4表示ps
22         public DateTime CreateTime { get; set; }
23         public int UserId { get; set; }
24         public string ClientIP { get; set; }
25     }
26 }
StuAsk

 

posted @ 2017-02-23 22:42  ~Jungle  Views(247)  Comments(0Edit  收藏  举报