一、分页

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. 使用Aspose.Cells 设置chart的y坐标轴显示值

    目的:设置chart的y坐标轴显示值 用aspose.cell生成的chart生成的Y轴是默认生成的,自己要定义y轴坐标值1.把数据源写到excel里面,list里面2.y轴坐标自己定义 第一种:默认 ...

  2. [转]Python格式化输出

    今天写程序又记不清格式化输出细节了……= =索性整理一下. python print格式化输出. 1. 打印字符串 print ("His name is %s"%("A ...

  3. iOS开发之身份证号码校验

    // //  Card.h //  THCStore // //  Created by Mac on 15/7/15. //  Copyright (c) 2015年 Mac. All rights ...

  4. 当碰到unix纪元问题时strtotime怎么转时间戳(DateTime类的使用方法)

    UNIX纪元时间又称POSIX时间/新纪元时间(Epoch Time):从协调世界时1970年1月1日0时0分0秒起到现在的总秒数,不包括闰秒.正值表示1970以後,负值则表示1970年以前. Uni ...

  5. 读书笔记_Effective_C++_条款四十六:需要类型转换时请为模板定义非成员函数

    这个条款可以看成是条款24的续集,我们先简单回顾一下条款24,它说了为什么类似于operator *这样的重载运算符要定义成非成员函数(是为了保证混合乘法2*SomeRational或者SomeRat ...

  6. adb permission denied

    1.没有得到root权限,可以用刷机精灵一键root. 2.root不彻底,手机安装超级adbd,即可.

  7. java中DatagramSocket连续发送多个数据报包时产生丢包现象解决方案

    try { //向指定的ip和端口发送数据~! //先说明一下数据是谁发送过来的! byte[] ip = InetAddress.getLocalHost().getHostAddress().ge ...

  8. Xcode_cocoaPods-超详细傻瓜式安装教程

    一.Ruby环境: 下载cocoaPods需要Ruby环境. 1. Mac os 10.5以后只带Ruby环境.为了确保万无一失还是查看一下吧. 打开终端 (1)ruby -v (2)更新tuby g ...

  9. [python]自问自答:python -m参数?

    python -m xxx.py 作用是:把xxx.py文件当做模块启动 但是我一直不明白当做模块启动到底有什么用.python xxx.py和python -m xxx.py有什么区别! 自问自答: ...

  10. sql server 脚本创建数据库邮件

    sql server 脚本创建数据库邮件代码: --脚本创建数据库邮件 --1.开启数据库邮件 RECONFIGURE WITH OVERRIDE GO RECONFIGURE WITH OVERRI ...