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> ...
随机推荐
- pentaho saiku 安装全过程
公司希望也开发一套多维分析系统,以解决运营/产品无休止的需求和技术人力不足的矛盾! 一.开发选型: 一.BIRT:易用性差,所以没再使用 二.JasperReport+ireport:文档收费,不支持 ...
- C++ Low level performance optimize 2
C++ Low level performance optimize 2 上一篇 文章讨论了一些底层代码的优化技巧,本文继续讨论一些相关的内容. 首先,上一篇文章讨论cache missing的重要性 ...
- js webapp 滑动事件
var startX, startY, endX, endY; $(".detailImg").on("touchstart", touchStart);$(& ...
- SupportV7包中 SwipeRefreshLayout 修改下拉控件的距离
//修改下拉距离 ViewTreeObserver vto = mCategoryResults.mSwipeRefreshLayout.getViewTreeObserver(); vto.addO ...
- 解决 Tomcat 无法绑定 80 端口的问题,以及 Tomcat 配置虚拟目录、二级域名等
问题 今天安装完 Tomcat,安装时把 Tomcat 默认的 HTTP/1.1 Connector Port 从 8080 改为了 7080,启动 Tomcat,在浏览器中输入 Http://loc ...
- Git 分支合并
理解核心 Git最初只有一个分支,所有后续分支都是直接或间接的从这个分支切出来的. 在任意两个分支上,向前追溯提交记录,都能找到一个最近的提交同时属于这两个分支,这个提交就是两个分支的分叉节点 分支合 ...
- 利用 word2vec 训练的字向量进行中文分词
最近针对之前发表的一篇博文<Deep Learning 在中文分词和词性标注任务中的应用>中的算法做了一个实现,感觉效果还不错.本文主要是将我在程序实现过程中的一些数学细节整理出来,借此优 ...
- 『摄影欣赏』16幅 Romantic 风格照片欣赏【组图】
今天,我们将继续分享人类情感的系列文章.爱是人类最重要的感觉,也可能是各种形式的艺术(电影,音乐,书,画等)最常表达的主题 .这里有40个最美丽的爱的照片,将激励和给你一个全新的视觉角度为这种情绪.我 ...
- cocos2dx-3.x 导出自定义类到 lua 过程详解
转载请注明出处:http://www.cnblogs.com/Ray1024 一.简介 最近正在学习cocos2d中的lua游戏开发,因为lua开发的热更新特性,大家开发游戏好像都会优先选择lua作为 ...
- Mysql学习笔记(六)增删改查
PS:数据库最基本的操作就是增删改查了... 学习内容: 数据库的增删改查 1.增...其实就是向数据库中插入数据.. 插入语句 insert into table_name values(" ...