前言:继续讲框架,然后介绍正则的相关知识。
内容:
1.封装分页方法,方便以后调用;响应的CSS代码也可以封装。
2.WEB层里面的页面名称不要和model和dal里面的名称相同。
3.两个表联合查询的方法,实现分页效果:
1 public class StuAskDAL 2 { 3 public static BaseDAL<StuAsk> m_StuAskDal = new BaseDAL<StuAsk>(); 4 // 获取到用户信息表和帖子表的联合数据 5 public static DataTable GetStuInnerAsk(int pageindex, int pagesize, string strWhere) 6 { 7 string strSql = string.Format(@"select top {0} *from 8 (select ROW_NUMBER() over (order by UserId) as rownumber,* from 9 ( 10 select UI.UserId,UI.RealName,UI.UserName,UI.Pwd,UI.Phase,UI.QQ,SA.AskId, 11 SA.Title,SA.AskCategory from UserInfor UI inner join StuAsk SA on 12 UI.UserId=SA.UserId where {2} 13 )AB 14 )B where rownumber>{0}*({1}-1) ", pagesize, pageindex, strWhere); 15 DataTable dt = SqlHelper.ExecuteDataTable(DataBaseEnum.con, strSql, CommandType.Text, null); 16 return dt; 17 } 18 // 获取到用户名和帖子表的总记录数 19 public static int GetStuInnerAskCount() 20 { 21 string strSql = @"select UI.UserId,UI.RealName,UI.UserName,UI.Pwd,UI.Phase,UI.QQ,SA.AskId, 22 SA.Title,SA.AskCategory from UserInfor UI inner join StuAsk SA on 23 UI.UserId=SA.UserId"; 24 DataTable dt = SqlHelper.ExecuteDataTable(DataBaseEnum.con, strSql, CommandType.Text, null); 25 return dt.Rows.Count; 26 } 27 }
1 public partial class UserInnerAsk : System.Web.UI.Page 2 { 3 private int PageCount = 0; 4 private int PageSize = 10;//一页多少条数据 5 private int _pageIndex; 6 public int PageIndex 7 { 8 get 9 { 10 try 11 { 12 _pageIndex = Request.QueryString["page"] == null ? 1 : Convert.ToInt32(Request.QueryString["page"].ToString()); 13 } 14 catch 15 { 16 _pageIndex = 1; 17 } 18 return _pageIndex; 19 } 20 set { _pageIndex = value; } 21 } 22 public string GetWhere() 23 { 24 StringBuilder sb = new StringBuilder(); 25 sb.Append("1=1"); 26 if (!string.IsNullOrEmpty(txtQQ.Text.Trim()) && WebSafe.SqlInsert(txtQQ.Text.Trim())) 27 { 28 sb.Append(string.Format(" and UI.QQ={0}", txtQQ.Text.Trim())); 29 } 30 return sb.ToString(); 31 } 32 protected void Page_Load(object sender, EventArgs e) 33 { 34 DataTable dt = StuAskDAL.GetStuInnerAsk(PageIndex, PageSize, GetWhere()); 35 GridView1.DataSource = dt; 36 GridView1.DataBind(); 37 } 38 public string GetPager() 39 { 40 string s = Pager.GetPagerHtml(PageIndex, PageSize, StuAskDAL.GetStuInnerAskCount(), "UserInnerAsk.aspx"); 41 return s; 42 } 43 protected void btnSel_Click(object sender, EventArgs e) 44 { 45 46 } 47 }
4.和数据库交互总结:
(1)对于一张表的话,用GetModel()获取到某一行的数据;GetCount()获取到记录数;GetList()获取到一个集合;Delete()删除;Update()更改;Add()添加。
(2)对于多表联合查询,用SqlHelper。
5.正则表达式:用于数据匹配。用于注册等场合,还可用于抓取数据。
6.测试正则表达式的一个小工具:tool.chinaz.com/regex/。
后记: