一、分页

1.写查询方法:

public List<Student> Select(int PageCount, int PageNumber)
{//PageCount为每页显示条数,PageNumber为当前第几页
List<Student> list = new List<Student>();
cmd.CommandText = "select top " + PageCount + " *from Student where Code not in (select top "+(PageCount * (PageNumber - ))+" Code from Student)";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
Student s = new Student();
s.Code = dr[].ToString();
s.Name = dr[].ToString();
s.Sex = Convert.ToBoolean(dr[]);
s.Birthday = Convert.ToDateTime(dr[]);
s.SubjectCode = dr[].ToString();
s.Nation = dr[].ToString();
list.Add(s);
}
}
conn.Close();
return list;
}

查询方法

2.C#代码

int PageCount = ; //每页显示条数
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
List<Student> list = new StudentData().Select(PageCount,);
Repeater1.DataSource = list;
Repeater1.DataBind();
Label2.Text = "";//第一页
Label3.Text = MaxPageNumber().ToString();//总页数
}
for (int i = ; i <= MaxPageNumber(); i++)
{
DropDownList2.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
}

Page_Load

public int MaxPageNumber()
{
List<Student> list = new StudentData().select(); double de = list.Count / (PageCount * 1.0); int aa = Convert.ToInt32(Math.Ceiling(de));//取上限
return aa;
}

计算总页数

void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
Repeater1.DataSource = new StudentData().Select(PageCount, Convert.ToInt32(DropDownList2.SelectedValue));
Repeater1.DataBind();
Label2.Text = DropDownList2.SelectedValue;
}

快速跳转

void btn_end_Click(object sender, EventArgs e)
{
List<Student> list = new StudentData().Select(PageCount, MaxPageNumber());
Repeater1.DataSource = list;
Repeater1.DataBind();
Label2.Text = MaxPageNumber().ToString();
}

跳转到最后一页

void btn_first_Click(object sender, EventArgs e)
{
List<Student> list = new StudentData().Select(PageCount, );
Repeater1.DataSource = list;
Repeater1.DataBind();
Label2.Text ="";
}

跳转到第一页

void btn_prev_Click(object sender, EventArgs e)
{
int pagec = Convert.ToInt32(Label2.Text) - ;
if (pagec <=)//判断是不是第一页,是的话什么也不干
{
return;
}
List<Student> list = new StudentData().Select(PageCount, pagec);
Repeater1.DataSource = list;
Repeater1.DataBind();
Label2.Text = pagec.ToString();
}

跳转到上一页

void btn_next_Click(object sender, EventArgs e)
{
int pagec = Convert.ToInt32(Label2.Text) + ;
if (pagec > MaxPageNumber())// 判断是不是最后一页,是的话什么也不干
{
return;
}
Repeater1.DataSource = new StudentData().Select(PageCount,pagec);
Repeater1.DataBind();
Label2.Text = pagec.ToString(); }

跳转到下一页

二、组合查询

1.查询方法

 public List<Student> Select(string tsql,Hashtable hh)
{
List<Student> list = new List<Student>();
cmd.CommandText = tsql;
cmd.Parameters.Clear();
foreach( string s in hh.Keys)
{
cmd.Parameters.Add(s,hh[s]);
}
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
Student s = new Student();
s.Code = dr[].ToString();
s.Name = dr[].ToString();
s.Sex = Convert.ToBoolean(dr[]);
s.Birthday = Convert.ToDateTime(dr[]);
s.SubjectCode = dr[].ToString();
s.Nation = dr[].ToString();
list.Add(s);
}
}
conn.Close();
return list;
}

查询方法

public List<Subject> Select(string name)
{
List<Subject> list = new List<Subject>();
cmd.CommandText = "select *from Subject where SubjectName like @a ";
cmd.Parameters.Clear();
cmd.Parameters.Add("@a","%"+name+"%");
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
Subject s = new Subject();
s.SubjectCode = dr[].ToString();
s.SubjectName = dr[].ToString();
list.Add(s);
}
}
conn.Close(); return list;
}

2.c#代码

 void Button2_Click(object sender, EventArgs e)
{
int count = ;//判断tsql是否含有where
Hashtable hs = new Hashtable();//哈希表
string tsql = "select * from Student";
//性别
if(!string.IsNullOrEmpty(tb_sex.Text.Trim()))//输入的性别非空
{
if (tb_sex.Text.Trim() == "男")
{
tsql += " where Sex = @a";
hs.Add("@a", "true");
count++;
}
else if (tb_sex.Text.Trim() == "女")
{
tsql += " where Sex = @a";
hs.Add("@a", "false");
count++;
}
}
//年龄
if (!string.IsNullOrEmpty(tb_age.Text.Trim()))//判断年龄输入框是否为空
{
int a = DateTime.Now.Year;
try {//异常保护,输入框只能是数字
int ag= Convert.ToInt32(tb_age.Text.Trim());
int g = a - ag;
DateTime d = Convert.ToDateTime(g.ToString()+"-1-1");
if (DropDownList3.SelectedValue == ">=")//列表框显示值为<=,小于某个年龄
{
if (count == )
{
tsql += " where Birthday " + DropDownList3.SelectedValue + "@b";
}
else
{
tsql += " and Birthday " + DropDownList3.SelectedValue + "@b";
}
hs.Add("@b", d);
}
else//大于某个年龄
{
DateTime dd = Convert.ToDateTime(g.ToString() + "-12-31");
if (count == )
{
tsql += " where Birthday " + DropDownList3.SelectedValue + "@b";
}
else
{
tsql += " and Birthday " + DropDownList3.SelectedValue + "@b";
}
hs.Add("@b", dd);
}
count++;
}
catch {
}
}
if (!string.IsNullOrEmpty(tb_s.Text.Trim()))//专业非空
{
List<Subject> li = new SubjectData().Select(tb_s.Text.Trim());
if (li.Count <= )
{
}
else
{ string u ="";
int cou = ;
foreach(Subject ub in li)
{
u = ub.SubjectCode;
if (cou == )//第一条数据
{
if (count == )
{
tsql += " where SubjectCode =@c";
}
else
{
tsql += " and SubjectCode =@c";
}
hs.Add("@c", u);
cou++;
}
else
{
tsql += " or SubjectCode =@d";
hs.Add("@d", u);
}
}
}
}
Repeater1.DataSource = new StudentData().Select(tsql, hs);
Repeater1.DataBind();
}

查询按钮赋功能

Webform(分页、组合查询)的更多相关文章

  1. webform:分页组合查询

    一个简单的分页组合查询页面 /// <summary> /// 查询方法 /// </summary> /// <param name="tsql"& ...

  2. ASP.NETMVC4 分页组合查询解决方法

    本人新手刚在webform转到mvc   像linq  ef啥的,都是不会的不行不行的,不会就问群友,找资料 今天本屌遇到了一个分页组合查询的问题,解决了2个小时,把代码共享给大家 话不多话,直接上代 ...

  3. Linq组合查询与分页组合查询结合

    1.组合查询 <div>姓名:<asp:TextBox ID="T1" runat="server"></asp:TextBox& ...

  4. 【2017-06-02】Linq高级查询,实现分页组合查询。

    1.以XXX开头 2.以XXX结尾 3.模糊查询 4.求个数 5.求最大值 6.求最小值 7.求平均值 8.求和 9.升序 10.降序 11.分页 Skip()跳过多少条 Take()取多少条 12. ...

  5. linq分页组合查询

    一.linq高级查 1.模糊查(字符串包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r = ...

  6. Webform--LinQ 分页组合查询

    一.linq高级查 1.模糊查(字符串包含) public List<User> Select(string name) { return con.User.Where(r => r ...

  7. ASP.NET 分页+组合查询 练习

    分页和组合查询都是通过拼接SQL语句到数据库查询进行实现 到汽车表(car)中查询 ,汽车表选取了“编号 code”,“车名 name”,“日期 time”,“油耗 oil ”,“马力 powers” ...

  8. webform 分页、组合查询综合使用

    界面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx ...

  9. Webform(Linq高级查、分页、组合查询)

    一.linq高级查 1.模糊查(包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r => ...

  10. Webform(分页与组合查询配合使用)

    1.封装实体类 2.写查询方法 //SubjectData类 public List<Subject> Select(string name) { List<Subject> ...

随机推荐

  1. pentaho saiku 安装全过程

    公司希望也开发一套多维分析系统,以解决运营/产品无休止的需求和技术人力不足的矛盾! 一.开发选型: 一.BIRT:易用性差,所以没再使用 二.JasperReport+ireport:文档收费,不支持 ...

  2. C++ Low level performance optimize 2

    C++ Low level performance optimize 2 上一篇 文章讨论了一些底层代码的优化技巧,本文继续讨论一些相关的内容. 首先,上一篇文章讨论cache missing的重要性 ...

  3. js webapp 滑动事件

    var startX, startY, endX, endY; $(".detailImg").on("touchstart", touchStart);$(& ...

  4. SupportV7包中 SwipeRefreshLayout 修改下拉控件的距离

    //修改下拉距离 ViewTreeObserver vto = mCategoryResults.mSwipeRefreshLayout.getViewTreeObserver(); vto.addO ...

  5. 解决 Tomcat 无法绑定 80 端口的问题,以及 Tomcat 配置虚拟目录、二级域名等

    问题 今天安装完 Tomcat,安装时把 Tomcat 默认的 HTTP/1.1 Connector Port 从 8080 改为了 7080,启动 Tomcat,在浏览器中输入 Http://loc ...

  6. Git 分支合并

    理解核心 Git最初只有一个分支,所有后续分支都是直接或间接的从这个分支切出来的. 在任意两个分支上,向前追溯提交记录,都能找到一个最近的提交同时属于这两个分支,这个提交就是两个分支的分叉节点 分支合 ...

  7. 利用 word2vec 训练的字向量进行中文分词

    最近针对之前发表的一篇博文<Deep Learning 在中文分词和词性标注任务中的应用>中的算法做了一个实现,感觉效果还不错.本文主要是将我在程序实现过程中的一些数学细节整理出来,借此优 ...

  8. 『摄影欣赏』16幅 Romantic 风格照片欣赏【组图】

    今天,我们将继续分享人类情感的系列文章.爱是人类最重要的感觉,也可能是各种形式的艺术(电影,音乐,书,画等)最常表达的主题 .这里有40个最美丽的爱的照片,将激励和给你一个全新的视觉角度为这种情绪.我 ...

  9. cocos2dx-3.x 导出自定义类到 lua 过程详解

    转载请注明出处:http://www.cnblogs.com/Ray1024 一.简介 最近正在学习cocos2d中的lua游戏开发,因为lua开发的热更新特性,大家开发游戏好像都会优先选择lua作为 ...

  10. Mysql学习笔记(六)增删改查

    PS:数据库最基本的操作就是增删改查了... 学习内容: 数据库的增删改查 1.增...其实就是向数据库中插入数据.. 插入语句 insert into table_name values(" ...