联合查询到gridview
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
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 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }