webform:分页组合查询
一个简单的分页组合查询页面
/// <summary>
/// 查询方法
/// </summary>
/// <param name="tsql">SQL语句</param>
/// <param name="hh">哈希表</param>
/// <returns></returns>
public List<Goods> Select(string uname, string sql, Hashtable hs)
{
List<Goods> glist = new List<Goods>();
cmd.CommandText = sql;
cmd.Parameters.Clear();
foreach (string aa in hs.Keys)
{
cmd.Parameters.AddWithValue(aa, hs[aa]);
}
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
Goods g = new Goods();
g.Ids = Convert.ToInt32(dr["Ids"]);
g.Sname = dr["Sname"].ToString();
g.Number = dr["Number"].ToString();
g.Date = Convert.ToDateTime(dr["Date"]);
g.Shelf = Convert.ToInt32(dr["Shelf"]);
g.Contacts = dr["Contacts"].ToString();
g.Tel = dr["Tel"].ToString();
g.UserName = uname;
glist.Add(g);
}
}
conn.Close();
return glist;
} /// <summary>
/// 查询方法(页数)
/// </summary>
/// <param name="tsql"></param>
/// <param name="hh"></param>
/// <returns></returns>
public List<Goods> Select(string uname, int count, int page, string sql, Hashtable hs)
{
List<Goods> glist = new List<Goods>();
string sql1 = sql.Replace("*", "top " + count + " * ");
string sql2 = sql.Replace("*", "top " + (page - ) * count + " Ids ");
cmd.CommandText = sql1 + " and Ids not in(" + sql2 + ")";
cmd.Parameters.Clear();
foreach (string aa in hs.Keys)
{
cmd.Parameters.AddWithValue(aa, hs[aa]);
}
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
Goods g = new Goods();
g.Ids = Convert.ToInt32(dr["Ids"]);
g.Sname = dr["Sname"].ToString();
g.Number = dr["Number"].ToString();
g.Date = Convert.ToDateTime(dr["Date"]);
g.Shelf = Convert.ToInt32(dr["Shelf"]);
g.Contacts = dr["Contacts"].ToString();
g.Tel = dr["Tel"].ToString();
g.UserName = uname;
glist.Add(g);
}
}
conn.Close();
return glist; }
数据访问类
public class Goods
{
public Goods()
{
//
// TODO: 在此处添加构造函数逻辑
//
} public int Ids { get; set; }
public string Sname { get; set; }
public string Number { get; set; }
public DateTime Date { get; set; }
public int Shelf { get; set; }
public string Contacts { get; set; }
public string Tel { get; set; }
public string UserName { get; set; } /// <summary>
/// 判断有效期,以颜色区分
/// </summary>
public string color
{
get
{
string re = "";
int a = Shelf - (DateTime.Now - Date).Days;
if(a<=)
re = "background-color:#393535; color:red;";
else if (a <= )
re = "background-color:red;";
else if (a <= &a>)
re = "background-color:yellow;";
return re;
}
}
}
封装实体类
public partial class Show : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.Cookies["username"] != null)
{
string n = Request.Cookies["username"].Value;
Label_NowPage.Text = "";//第一页
Label_MaxPage.Text = MaxPageNumber().ToString();//获取最大页
btn_prev.Enabled = false;
btn_first.Enabled = false; Repeater1.DataSource = new GoodsData().Select(Count, );
Repeater1.DataBind();
int max = MaxPageNumber();
DropDownList1.Items.Clear();
//给可快速跳转列表框赋值
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
string uname = new UsersData().Select(n).NickName;
Literal1.Text = "欢迎你," + uname + "";
}
else
{
Response.Redirect("Login.aspx");
} } DropDownList1.SelectedIndexChanged += Button1_Click;
btn_first.Click += btn_first_Click;//首页
btn_prev.Click += btn_prev_Click;//上一页
btn_next.Click += btn_next_Click;//下一页
btn_last.Click += btn_last_Click;//末页
Button1.Click += Button1_Click;//跳转按钮
Button2.Click += Button2_Click;
LinkButton1.Click += LinkButton1_Click;
} string sql = "";
//使用哈希表
Hashtable hs = new Hashtable();
private void groupselect()
{
sql = "select * from Warehouse";
hs.Clear();
//判断文本框中是否有内容需要查询
if (TextBox1.Text.Trim().Length > )
{
//如果有内容,那么就拼接到Tsql语句中去
sql += " where Sname like @a";
hs.Add("@a", "%" + TextBox1.Text.Trim() + "%");
hs.Add("@d", "%" + TextBox1.Text.Trim() + "%");
}
else
{
sql += " where 1=1";
}
if (TextBox2.Text.Trim().Length > )
{
sql += " and Shelf" + DropDownList2.SelectedValue + "@b";
hs.Add("@b", TextBox2.Text.Trim());
hs.Add("@e", TextBox2.Text.Trim());
}
else
{
sql += " and 1=1";
}
if (TextBox3.Text.Length > )
{
sql += " and Contacts like @c";
hs.Add("@c", "%" + TextBox3.Text.Trim() + "%");
hs.Add("@f", "%" + TextBox3.Text.Trim() + "%");
}
else
{
sql += " and 1=1";
}
Repeater1.DataSource = new GoodsData().Select(N, sql.Replace("*", "top " + Count + " *"), hs);
Repeater1.DataBind();
} void Button2_Click(object sender, EventArgs e)
{
groupselect();
int max = MaxPageNumber();
DropDownList1.Items.Clear();
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
Label_NowPage.Text = "";
Label_MaxPage.Text = MaxPageNumber().ToString();
if (max == )
{
btn_first.Enabled = false;
btn_prev.Enabled = false;
btn_next.Enabled = false;
btn_last.Enabled = false;
}
else
{
btn_first.Enabled = false;
btn_prev.Enabled = false;
btn_next.Enabled = true;
btn_last.Enabled = true;
}
} void btn_prev_Click(object sender, EventArgs e)
{
groupselect();
int max = MaxPageNumber();
DropDownList1.Items.Clear();
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
} int nextPage = Convert.ToInt32(Label_NowPage.Text) - ; Repeater1.DataSource = new GoodsData().Select(N, Count, nextPage, sql, hs);
Repeater1.DataBind(); Label_NowPage.Text = nextPage.ToString();
panduan(nextPage);
} void btn_first_Click(object sender, EventArgs e)
{
groupselect();
int max = MaxPageNumber();
DropDownList1.Items.Clear();
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
int nextPage = ; Repeater1.DataSource = new GoodsData().Select(N,Count, nextPage, sql, hs);
Repeater1.DataBind(); Label_NowPage.Text = nextPage.ToString();
panduan(nextPage);
} void btn_next_Click(object sender, EventArgs e)
{
groupselect();
int max = MaxPageNumber();
DropDownList1.Items.Clear();
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
//获取当前页,计算要看的下一页的页号
int nextPage = Convert.ToInt32(Label_NowPage.Text) + ;
//按照获取的页数绑定相应的数据
Repeater1.DataSource = new GoodsData().Select(N,Count, nextPage, sql, hs);
Repeater1.DataBind();
//修改显示页数
Label_NowPage.Text = nextPage.ToString();
panduan(nextPage);
} void btn_last_Click(object sender, EventArgs e)
{
groupselect();
int max = MaxPageNumber();
DropDownList1.Items.Clear();
for (int i = ; i <= max; i++)
{
DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
int nextPage = MaxPageNumber();
//按照获取的页数绑定相应的数据
Repeater1.DataSource = new GoodsData().Select(N, Count, nextPage, sql, hs);
Repeater1.DataBind(); //修改显示页数
Label_NowPage.Text = nextPage.ToString();
panduan(nextPage); } void Button1_Click(object sender, EventArgs e)
{
//获取当前页,计算要看的下一页的页号
int nextPage = Convert.ToInt32(DropDownList1.SelectedValue); //按照获取的页数绑定相应的数据
Repeater1.DataSource = new GoodsData().Select(Count, nextPage);
Repeater1.DataBind(); //修改显示页数
Label_NowPage.Text = nextPage.ToString(); if (nextPage <= )
{
btn_prev.Enabled = false;
}
btn_next.Enabled = true;
} void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
} void LinkButton1_Click(object sender, EventArgs e)
{
Response.Redirect("Login.aspx");
}
string N = null;
int Count = ;
public int MaxPageNumber()
{
//查询所有的数据
List<Goods> glist = new List<Goods>();
if (sql == "")
{
glist = new GoodsData().Select(N);
}
else
{
glist = new GoodsData().Select(N, sql, hs);
}
//取上限
double end2 = Math.Ceiling(glist.Count / (Count * 1.0)); int end = Convert.ToInt32(end2); return end;
}
public void panduan(int nextPage)
{
if (nextPage == )
{
btn_first.Enabled = false;
btn_prev.Enabled = false;
btn_next.Enabled = true;
btn_last.Enabled = true;
}
else if (nextPage == MaxPageNumber())
{
btn_first.Enabled = true;
btn_prev.Enabled = true;
btn_next.Enabled = false;
btn_last.Enabled = false;
}
else
{
btn_first.Enabled = true;
btn_prev.Enabled = true;
btn_next.Enabled = true;
btn_last.Enabled = true;
}
}
}
展示界面后台代码
效果展示
1分页:
2单独条件查询
3多条件查询

4上下点击翻页(可直接点击下拉菜单进行跳转)

webform:分页组合查询的更多相关文章
- 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> ...
随机推荐
- Refusing to install webpack as a dependency of itself
用npm安装webpack的时候报了这个错: Refusing to install webpack as a dependency of itself 翻译过来大概是:'拒绝安装webpack其本身 ...
- 【Bootstrap】3.优化站点资源、完成响应式图片、让传送带支持手势
A.优化站点资源 速度很重要.用户很关心.我们的站点必须加载够快,否则用户就会走人.SEO 也很重要.我们的站点必须加载够快,否者搜索排名就会下降. 明白了这样,我们就来清点一下 [Bootstrap ...
- 腾讯bugly团队提供的android国内镜像
腾讯bugly团队提供的国内镜像 如果使用Android SDK Manager下载比较慢或者打不开,可以使用国内镜像 使用说明 http://android-mirror.bugly.qq.co ...
- 我的BluetoothChat示例源码阅读笔记
BluetoothChat核心类BluetoothChatService,该类用于管理与其他设备的蓝牙连接和设置.该类包含AcceptThread.ConnectedThread.ConnectThr ...
- Java中常用的查找算法——顺序查找和二分查找
Java中常用的查找算法——顺序查找和二分查找 神话丿小王子的博客 一.顺序查找: a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位 ...
- Config文件
这个是以前的笔记. web.config文件是一个XML文件,它的根结点是<configuration>. 1<appSettings>节点主要用来放asp.net应用程序的配 ...
- Hadoop概念学习系列之Hadoop 生态系统(十二)
当下 Hadoop 已经成长为一个庞大的生态体系,只要和海量数据相关的领域,都有 Hadoop 的身影.下图是一个 Hadoop 生态系统的图谱,详细列举了在 Hadoop 这个生态系统中出现的各种数 ...
- 如何利用Pre.im分发iOS测试包
大众创新万众创业,在移动互联网的风口,移动APP开发与测试发展方兴未艾,受到了越来越多的重视.相较 iOS,Android 的开发环境更加开放.Android 开发者要测试应用时,只需发个 APK 安 ...
- yii过滤xss代码,防止sql注入
作者:白狼 出处:www.manks.top/article/yii2_filter_xss_code_or_safe_to_database 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明 ...
- CVEH项目观察与思考
2013-07-01 项目进展: 从启动至今已有三个星期,但是进展甚慢,取得的进展有: A. 封装成库,和HB调用库的接口有些进展,但进未完成 B. 整个框架,类视图,调用视图,只有两三层的进展: C ...