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

  /// <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. Atitit.木马病毒强制强行关闭360 360tray.exe的方法

    Atitit.木马病毒强制强行关闭360 360tray.exe的方法 1. taskkill /im 进程名称1 2. 用 wmic process where name="进程名称&qu ...

  2. Vault 不同版本的API的异同

    大家知道,Autodesk Vault 2014有几个版本,依次为( Basic, Workgroup, Professional),不同版本的功能不相同,关于Vault产品功能的不同之处可以在Vau ...

  3. gridView获得每行的值

    前台代码: <asp:GridView ID="GridView1" runat="server" DataKeyNames="ID" ...

  4. Android ListViewview入门

    接着上文<Android 数据库的事务>,往person数据表中插入50条数据 public void testAdd() throws Exception { PersonDao dao ...

  5. 从Eclipse迁移到Android Studio

    Google正式推出了Android Studio 1.0,Android默认的开发工具也由Eclipse变成了intellij,对Eclipse的支持肯定会越来越少了,对于Android开发者来说, ...

  6. iOS中的事件传递和响应者链条

    本文转自:http://www.linuxidc.com/Linux/2015-08/121270.htm 首先我们来看看ios中事件的产生和传递过程 1.发生触摸事件后,系统会将事件加入到一个由UI ...

  7. Java开发第一步:JDK 7 安装及配置

    JDK 7 安装及配置1. 打开网页http://www.oracle.com 下载对应平台的合适 JDK. 2. 双击下载的 exe,如 jdk-7u7-windows-i586.exe.3. 进入 ...

  8. 关于JS变量提升的一些坑

    function log(str) { // 本篇文章所有的打印都将调用此方法 console.log(str); } 函数声明和变量声明总是会被解释器悄悄地被“提升”到方法体的最顶部 变量声明.命名 ...

  9. PHP 类型判断和NULL,空值检查

    PHP是一种宽松类型的编程语言,在函数中对传入的参数值的“类型”以及”值是否为空或者NULL“进行检查是不可缺少的步骤. 类型检查 从PHP5开始,PHP允许对函数的参数进行类型约束,即可以约束参数的 ...

  10. 利用phpmyadmin修改mysql的root密码及如何进入修改密码后的phpmyadmin

    1.利用phpmyadmin修改mysql的root密码 很多人利用phpmyadmin或者命令行来修改了mysql的root密码,重启后发现mysql登录错误,这是为什么呢?修改mysql的root ...