Webform(分页、组合查询)
一、分页
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(分页、组合查询)的更多相关文章
- webform:分页组合查询
一个简单的分页组合查询页面 /// <summary> /// 查询方法 /// </summary> /// <param name="tsql"& ...
- ASP.NETMVC4 分页组合查询解决方法
本人新手刚在webform转到mvc 像linq ef啥的,都是不会的不行不行的,不会就问群友,找资料 今天本屌遇到了一个分页组合查询的问题,解决了2个小时,把代码共享给大家 话不多话,直接上代 ...
- Linq组合查询与分页组合查询结合
1.组合查询 <div>姓名:<asp:TextBox ID="T1" runat="server"></asp:TextBox& ...
- 【2017-06-02】Linq高级查询,实现分页组合查询。
1.以XXX开头 2.以XXX结尾 3.模糊查询 4.求个数 5.求最大值 6.求最小值 7.求平均值 8.求和 9.升序 10.降序 11.分页 Skip()跳过多少条 Take()取多少条 12. ...
- linq分页组合查询
一.linq高级查 1.模糊查(字符串包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r = ...
- Webform--LinQ 分页组合查询
一.linq高级查 1.模糊查(字符串包含) public List<User> Select(string name) { return con.User.Where(r => r ...
- ASP.NET 分页+组合查询 练习
分页和组合查询都是通过拼接SQL语句到数据库查询进行实现 到汽车表(car)中查询 ,汽车表选取了“编号 code”,“车名 name”,“日期 time”,“油耗 oil ”,“马力 powers” ...
- webform 分页、组合查询综合使用
界面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx ...
- Webform(Linq高级查、分页、组合查询)
一.linq高级查 1.模糊查(包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r => ...
- Webform(分页与组合查询配合使用)
1.封装实体类 2.写查询方法 //SubjectData类 public List<Subject> Select(string name) { List<Subject> ...
随机推荐
- “享受”英语的快乐—我是如何学英语的
一:扬长避短重新认识英语课本 目前市场上的课本都有弊端,<新概念><走遍美国><疯狂英语>等等,不怪你学不下去,不是你的问题,课本本身就有漏洞的,但我怎么学的呢,我 ...
- [z] 人工智能和图形学、图像处理方面的各种会议的评级
转载自:『http://www.cvchina.info/2010/08/31/conference-ranking-byar/』 澳大利亚政府和澳大利亚研究理事会做的,有一定考价值. 会议名称 会议 ...
- jqGrid标题行与第一行之间有很大空白的问题解决。
如题的问题,网上找了很久,都没有解决方案.最后发现,问题不在jqgrid的配置代码,问题在前台HTML代码. <table id="grid" height="30 ...
- ux.form.field.KindEditor 所见所得编辑器
注意需要引入KindEditor相关资源 //所见所得编辑器 Ext.define('ux.form.field.KindEditor', { extend: 'Ext.form.field.Text ...
- centos 7 卸载 mariadb 的正确命令
#列出所有被安装的rpm package rpm -qa | grep mariadb #卸载 rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64 错误:依赖检测失败: ...
- Netty5 + WebSocket 练习
1. 了解WebSocket知识 略2. websocket实现系统简单反馈时间 WebSocketServerHandler.java package com.jieli.nettytest.web ...
- .NET中TextBox控件设置ReadOnly=true后台取不到值的解决方法
在.NET 2.0 下,当页面上的某个TextBox 设置了属性ReadOnly="True"时,通过客户端脚本给其赋值后,在后台代码中访问其Text属性却无法获得该值.经过尝试, ...
- 在Visual Studio 2010中进行“项目重命名”的有效工具
地址:http://www.cnblogs.com/dudu/archive/2011/12/11/visual_studio_2010_project_rename.html 提示:这个工具一次 r ...
- andorid jni入门教程一之helloworld
开发环境:windows2007, eclipse 做anroid越深发现用到底层开发的时候越多,但是我以前也没有搞过,因此现在打算好好学习学习.先从最简单的做起.正所谓万事开头难啊. 搞了近一天终于 ...
- ruby -- 进阶学习(十五)friendly_id配置
实现效果:http://127.0.0.1:3000/article/1 => http://127.0.0.1:3000/article/书名 (1)Rails 4.0的friendly_ ...