前言:继续讲框架,然后介绍正则的相关知识。

内容:

  1.封装分页方法,方便以后调用;响应的CSS代码也可以封装。

  2.WEB层里面的页面名称不要和model和dal里面的名称相同。

  3.两个表联合查询的方法,实现分页效果:

 public class StuAskDAL
{
public static BaseDAL<StuAsk> m_StuAskDal = new BaseDAL<StuAsk>();
// 获取到用户信息表和帖子表的联合数据
public static DataTable GetStuInnerAsk(int pageindex, int pagesize, string strWhere)
{
string strSql = string.Format(@"select top {0} *from
(select ROW_NUMBER() over (order by UserId) as rownumber,* from
(
select UI.UserId,UI.RealName,UI.UserName,UI.Pwd,UI.Phase,UI.QQ,SA.AskId,
SA.Title,SA.AskCategory from UserInfor UI inner join StuAsk SA on
UI.UserId=SA.UserId where {2}
)AB
)B where rownumber>{0}*({1}-1) ", pagesize, pageindex, strWhere);
DataTable dt = SqlHelper.ExecuteDataTable(DataBaseEnum.con, strSql, CommandType.Text, null);
return dt;
}
// 获取到用户名和帖子表的总记录数
public static int GetStuInnerAskCount()
{
string strSql = @"select UI.UserId,UI.RealName,UI.UserName,UI.Pwd,UI.Phase,UI.QQ,SA.AskId,
SA.Title,SA.AskCategory from UserInfor UI inner join StuAsk SA on
UI.UserId=SA.UserId";
DataTable dt = SqlHelper.ExecuteDataTable(DataBaseEnum.con, strSql, CommandType.Text, null);
return dt.Rows.Count;
}
}
 public partial class UserInnerAsk : System.Web.UI.Page
{
private int PageCount = ;
private int PageSize = ;//一页多少条数据
private int _pageIndex;
public int PageIndex
{
get
{
try
{
_pageIndex = Request.QueryString["page"] == null ? : Convert.ToInt32(Request.QueryString["page"].ToString());
}
catch
{
_pageIndex = ;
}
return _pageIndex;
}
set { _pageIndex = value; }
}
public string GetWhere()
{
StringBuilder sb = new StringBuilder();
sb.Append("1=1");
if (!string.IsNullOrEmpty(txtQQ.Text.Trim()) && WebSafe.SqlInsert(txtQQ.Text.Trim()))
{
sb.Append(string.Format(" and UI.QQ={0}", txtQQ.Text.Trim()));
}
return sb.ToString();
}
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = StuAskDAL.GetStuInnerAsk(PageIndex, PageSize, GetWhere());
GridView1.DataSource = dt;
GridView1.DataBind();
}
public string GetPager()
{
string s = Pager.GetPagerHtml(PageIndex, PageSize, StuAskDAL.GetStuInnerAskCount(), "UserInnerAsk.aspx");
return s;
}
protected void btnSel_Click(object sender, EventArgs e)
{ }
}

  4.和数据库交互总结:

  (1)对于一张表的话,用GetModel()获取到某一行的数据;GetCount()获取到记录数;GetList()获取到一个集合;Delete()删除;Update()更改;Add()添加。

  (2)对于多表联合查询,用SqlHelper。

  5.正则表达式:用于数据匹配。用于注册等场合,还可用于抓取数据。

  6.测试正则表达式的一个小工具:tool.chinaz.com/regex/

后记:

最新文章

  1. 转载:scala中:: , +:, :+, :::, ++的区别
  2. ButterKnife的原理简述
  3. DOM_06之定时器、事件、cookie
  4. java代写
  5. Unity 模型导入导出
  6. java获取tomcat路径
  7. 【Java 基础篇】【第八课】package包
  8. 【转】Android真机抓屏- Android Screen Monitor
  9. 50个Android开发技巧(02 延迟载入和避免反复渲染视图)
  10. vmware mac虚拟机 停在启动界面
  11. java_jdbc_利用结果集元数据将查询结果封装为map_MetaData
  12. ACM第六周竞赛题目——B CodeForces 478B
  13. 探讨弹性布局Flexible Box
  14. Grass Cownoisseur[Usaco2015 Jan]
  15. JAVA 处理 Spring data mongodb 时区问题
  16. Python pandas.io.data 模块迁移
  17. 《Hello world 团队》第二次作业:团队项目选题报告
  18. 用dbexpress连接sqlserver数据库
  19. #12【BZOJ3003】LED BFS+状压DP
  20. oracle学习笔记一:用户管理(3)用户口令管理

热门文章

  1. 详解Python中的生成器表达式(generator expression)
  2. C#文本之XML
  3. python 使用 urllib2
  4. html checkbox 实现全选/取消全选
  5. C#运用反射调用其他程序集中的代码
  6. jQuery框架源码解读
  7. mongodb or and 条件拼凑 Query.And Query.Or
  8. Session值的存储与删除
  9. ubuntu 12.04LTS下jdk 6安装记录
  10. Camera2/HAL3