一个简单的分页组合查询页面

  /// <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:分页组合查询的更多相关文章

  1. ASP.NETMVC4 分页组合查询解决方法

    本人新手刚在webform转到mvc   像linq  ef啥的,都是不会的不行不行的,不会就问群友,找资料 今天本屌遇到了一个分页组合查询的问题,解决了2个小时,把代码共享给大家 话不多话,直接上代 ...

  2. Linq组合查询与分页组合查询结合

    1.组合查询 <div>姓名:<asp:TextBox ID="T1" runat="server"></asp:TextBox& ...

  3. 【2017-06-02】Linq高级查询,实现分页组合查询。

    1.以XXX开头 2.以XXX结尾 3.模糊查询 4.求个数 5.求最大值 6.求最小值 7.求平均值 8.求和 9.升序 10.降序 11.分页 Skip()跳过多少条 Take()取多少条 12. ...

  4. linq分页组合查询

    一.linq高级查 1.模糊查(字符串包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r = ...

  5. Webform--LinQ 分页组合查询

    一.linq高级查 1.模糊查(字符串包含) public List<User> Select(string name) { return con.User.Where(r => r ...

  6. ASP.NET 分页+组合查询 练习

    分页和组合查询都是通过拼接SQL语句到数据库查询进行实现 到汽车表(car)中查询 ,汽车表选取了“编号 code”,“车名 name”,“日期 time”,“油耗 oil ”,“马力 powers” ...

  7. webform 分页、组合查询综合使用

    界面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx ...

  8. Webform(Linq高级查、分页、组合查询)

    一.linq高级查 1.模糊查(包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r => ...

  9. Webform(分页与组合查询配合使用)

    1.封装实体类 2.写查询方法 //SubjectData类 public List<Subject> Select(string name) { List<Subject> ...

随机推荐

  1. SMARTFORM & SAPScript

    SMARTFORM和SAPScript是SAP用于打印单据和报表的工具.SMARTFORM是SAPScript的替代工具,但是由于 SAP最初都是用SAPScript,所以很多单据的打印,比如PO,B ...

  2. 开通了个人微信公众号:slbGTD,准备把GTD相关的内容写成一本书

    <Get Things Done>是一本书的名字,简称为GTD,中文书名为<搞定>,同时GTD也是一种时间管理.自我管理的系统性方法,既有让你办事更有效率的技巧,也有多个的视角 ...

  3. Gradle多渠道打包

    国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包 以友盟多渠道打包为例 在AndroidManifest.xml里面 <meta-data a ...

  4. SDWebImage原理及使用

    这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理,异步下载,同一个URL下载次数控制和优化等特征. SDWebImage加载图片的流程 入口 setImageWit ...

  5. iOS_UITableView性能优化那些事

    UITableView在实际开发中使用频率实在是很高, 因此, UITableView的性能优化是必不可少的, 本文下面就略微总结一下UITableView性能优化那些事. 本文着重介绍具体方法, 原 ...

  6. VisualSVN Server的配置和使用方法 图文

    转载 http://www.jb51.net/article/17365.htm VisualSVN Server是免费的,而VisualSVN是收费的.VisualSVN是SVN的客户端,和Visu ...

  7. Mac OS 下的解压缩软件——The Unarchiver

    The Unarchiver 是 Mac 上最流行的解压软件,免费开源.操作方式与系统自带解压工具 Archive Utility.app 一样,双击自动解压.最爽的一点是把解压后原始文件直接仍进废纸 ...

  8. C#复习④

    C#复习④ 2016年6月16日 12:37 Main Classes and Structs 类和结构体 1.Contents of Classes 字段,常量,方法,构造函数,析构函数: 特性,事 ...

  9. 每日Scrum(3)

    冲刺第三天,团队重心还是在于把软件变得更加的高大上加上狂拽炫酷...内部功能呈现的多元化和吸引力是我们追求的目标: 问题出现的毫无疑问是创意,借鉴其他的类似软件和好的创意是最近的工作重心.

  10. [MySQL Reference Manual] 4 MYSQL Program

    4 MYSQL Program 目录 4 MYSQL Program 4.3 MySQL Server和Server启动程序 4.3.1 mysqld 4.3.2 mysqld_safe 4.3.3 ...