一、分页

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. String.format详解(转)

    一.前言 String.format 作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,为了不止步于简单调用 String.format("Hello %s", " ...

  2. 自定义控件的自定义的属性attrs.xml下的declare-styleable中format详解

    最近在摸索自定义控件,查找到一些自定义属性的一些资料,解决转载记载下来:看了此详解才方便理解! 我们在做项目的时候,由于android自带的属性不能满足需求,android提供了自定义属性的方法,其中 ...

  3. MFC窗口和控件大小等比例变化

    第一步:OnInitDialog里保存对话框及其所有子窗体的Rect区域 CRect rect; GetWindowRect(&rect); listRect.AddTail(rect);// ...

  4. 译:C#面向对象的基本概念 (Basic C# OOP Concept) 第三部分(多态,抽象类,虚方法,密封类,静态类,接口)

    9.多态 Ploy的意思就是多于一种形式.在文章开始,方法那一章节就已经接触到了多态.多个方法名称相同,而参数不同,这就是多态的一种. 方法重载和方法覆盖就是用在了多态.多态有2中类型,一种是编译时多 ...

  5. SQL1159 Initialization error with DB2 .NET Data Provider, reason code 7(问题补充)

    SQL1159 Initialization error with DB2 .NET Data Provider, reason code 7 需要注册GAC,修改注册表 IBM官方方案: http: ...

  6. 【转】每个人应该知道的NVelocity用法

    NVelocity是一个基于.NET的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象.从而使得界面设 ...

  7. ireport 导出工具类

    Ireport 报表导出 Poi + ireport 导出pdf, word ,excel ,html 格式 下面是报表导出工具类 Ireport 报表导出 Poi + ireport 导出pdf,  ...

  8. Routine Problem(数学)

     Routine Problem time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  9. CyanogenMod wiki reading tips | Android tips

    To Enable the Developer and Performance settings on CyanogenMod 10.1 In the Settings app, choose the ...

  10. AssetBundle系列——游戏资源打包(二)

    本篇接着上一篇.上篇中说到的4步的代码分别如下所示: (1)将资源打包成assetbundle,并放到自定目录下 using UnityEditor; using UnityEngine; using ...