zoukankan      html  css  js  c++  java
  • 组合查询分页代码

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            名称:<asp:TextBox ID="name" runat="server"></asp:TextBox>
            油耗:<asp:DropDownList ID="oil" runat="server">
                <asp:ListItem Text="大于" Value=">"></asp:ListItem>
                <asp:ListItem Text="小于" Value="<"></asp:ListItem>
                <asp:ListItem Text="等于" Value="="></asp:ListItem>
                <asp:ListItem Text="大于等于" Value=">="></asp:ListItem>
                <asp:ListItem Text="小于等于" Value="<="></asp:ListItem>
            </asp:DropDownList>
            <asp:TextBox ID="oiltext" runat="server"></asp:TextBox>
            价格:<asp:DropDownList ID="price" runat="server">
                <asp:ListItem Text="20万至30万" Value="price>=20 and price<=30"></asp:ListItem>
                <asp:ListItem Text="30万至40万" Value="price>=30 and price<=40"></asp:ListItem>
                <asp:ListItem Text="大于40万" Value="price>=40"></asp:ListItem>
            </asp:DropDownList>
            <asp:Button ID="Button1" runat="server" Text="查询" />
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            <table style=" 100%; background-color: blue; text-align: center;">
                <tr style="color: white;">
                    <td>编号</td>
                    <td>名称</td>
                    <td>油耗</td>
                    <td>马力</td>
                    <td>排量</td>
                    <td>价格</td>
                </tr>
                <asp:Repeater ID="Repeater1" runat="server">
                    <ItemTemplate>
                        <tr style="background-color: white;">
                            <td><%#Eval("Ids") %></td>
                            <td><%#Eval("Name") %></td>
                            <td><%#Eval("Oil") %></td>
                            <td><%#Eval("Powers") %></td>
                            <td><%#Eval("Exhaust") %></td>
                            <td><%#Eval("Price") %></td>
                        </tr>
                    </ItemTemplate>
                </asp:Repeater>
            </table>
            第[<asp:Label ID="nowpage" runat="server" Text="1"></asp:Label>]页&nbsp;&nbsp;
            共[<asp:Label ID="sumpage" runat="server" Text="1"></asp:Label>]页 &nbsp;&nbsp;
            <asp:Button ID="bt_first" runat="server" Text="首页" />
            <asp:Button ID="bt_up" runat="server" Text="上一页" />
            <asp:Button ID="bt_next" runat="server" Text="下一页" />
            <asp:Button ID="bt_last" runat="server" Text="尾页" />
    
            &nbsp;&nbsp;
            <asp:DropDownList ID="Dr_page" runat="server"></asp:DropDownList>
            <asp:Button ID="bt_go" runat="server" Text="跳转" />
    
        </form>
    </body>
    </html>
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    /// <summary>
    /// Car 的摘要说明
    /// </summary>
    public class Car
    {
        public int Ids { get; set; }
        public string Name { get; set; }
        public decimal Oil { get; set; }
        public int Powers { get; set; }
        public int Exhaust { get; set; }
        public decimal Price { get; set; }
    }
    实体类
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;
    
    /// <summary>
    /// CarData 的摘要说明
    /// </summary>
    public class CarData
    {
        SqlConnection conn = null;
        SqlCommand cmd = null;
        public CarData()
        {
            conn = new SqlConnection("server=.;database=student;user=sa;pwd=123456");
            cmd = conn.CreateCommand();
        }
        //查询全部信息
        public List<Car> SelectAll()
        {
            List<Car> clist = new List<Car>();
            cmd.CommandText = "select*from Car";
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                Car ca = new Car();
    
                ca.Ids = Convert.ToInt32(dr["ids"]);
                ca.Name = dr["name"].ToString();
                ca.Oil = Convert.ToDecimal(dr["oil"]);
                ca.Powers = Convert.ToInt32(dr["powers"]);
                ca.Exhaust = Convert.ToInt32(dr["exhaust"]);
                ca.Price = Convert.ToDecimal(dr["price"]);
    
                clist.Add(ca);
            }
            conn.Close();
            return clist;
        }
        //查询最大条数
        public int SelectCount()
        {
            int count = 0;
            cmd.CommandText = "select count(*)from Car";
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                dr.Read();
                count = Convert.ToInt32(dr[0]);
            }
            conn.Close();
            return count;
        }
    
        //查询最大条数
        public int SelectCount(string tsa,Hashtable hh)
        {
            int count = 0;
            cmd.CommandText = tsa;
            cmd.Parameters.Clear();
            foreach (string a in hh.Keys)
            {
                cmd.Parameters.AddWithValue(a, hh[a]);
            }
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                dr.Read();
                count = Convert.ToInt32(dr[0]);
            }
            conn.Close();
            return count;
        }
        //条件查询
        public List<Car> SelectAll(string tsql ,Hashtable hh)
        {
            
            List<Car> clist = new List<Car>();
            cmd.CommandText = tsql;
            cmd.Parameters.Clear();
            foreach (string a in hh.Keys)
            {
                cmd.Parameters.AddWithValue(a,hh[a]);
            }
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                Car ca = new Car();
    
                ca.Ids = Convert.ToInt32(dr["ids"]);
                ca.Name = dr["name"].ToString();
                ca.Oil = Convert.ToDecimal(dr["oil"]);
                ca.Powers = Convert.ToInt32(dr["powers"]);
                ca.Exhaust = Convert.ToInt32(dr["exhaust"]);
                ca.Price = Convert.ToDecimal(dr["price"]);
    
                clist.Add(ca);
            }
            conn.Close();
            return clist;
        }
        //跳页查询
        public List<Car> SelectAll(int num, int page)
        {
    
            List<Car> clist = new List<Car>();
            cmd.CommandText = "select top " + num + " *from Car where ids not in(select top " + num * (page - 1) + " ids from Car)";
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                Car ca = new Car();
    
                ca.Ids = Convert.ToInt32(dr["ids"]);
                ca.Name = dr["name"].ToString();
                ca.Oil = Convert.ToDecimal(dr["oil"]);
                ca.Powers = Convert.ToInt32(dr["powers"]);
                ca.Exhaust = Convert.ToInt32(dr["exhaust"]);
                ca.Price = Convert.ToDecimal(dr["price"]);
    
                clist.Add(ca);
            }
            conn.Close();
            return clist;
        }
    }
    数据访问类
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class Default2 : System.Web.UI.Page
    {
        int num = 5;
        protected void Page_Load(object sender, EventArgs e)
        {
            int page = Convert.ToInt32(nowpage.Text);
            if (!IsPostBack)
            {
                Repeater1.DataSource = End(1);
                Repeater1.DataBind();
    
                sumpage.Text = Maxpage().ToString();
                          
                if (page == Maxpage())
                {
                    bt_first.Enabled = false;
                    bt_up.Enabled = false;
                    bt_next.Enabled = false;
                    bt_last.Enabled = false;
    
                }
                for (int i = 1; i <= Maxpage(); i++)
                {
                    ListItem li = new ListItem(i.ToString(), i.ToString());
                    Dr_page.Items.Add(li);
                }
            }
            Button1.Click += Button1_Click;
            bt_last.Click += bt_last_Click;
            bt_next.Click += bt_next_Click;
            bt_up.Click += bt_up_Click;
            bt_first.Click += bt_first_Click;
            bt_go.Click += bt_go_Click;
    
        }
    
        void bt_go_Click(object sender, EventArgs e)
        {
            bt_first.Enabled = true;
            bt_up.Enabled = true;
            bt_next.Enabled = true;
            bt_last.Enabled = true;
            int a = Convert.ToInt32(Dr_page.SelectedValue);
            Repeater1.DataSource = End(a);
            Repeater1.DataBind();
            //显示当前页数
            nowpage.Text = a.ToString();
            if (a == 1)
            {
                bt_first.Enabled = false;
                bt_up.Enabled = false;
                return;
            }
            if (a == Maxpage())
            {
                bt_next.Enabled = false;
                bt_last.Enabled = false;
                return;
            }
        }
    
        void bt_first_Click(object sender, EventArgs e)
        {
            bt_last.Enabled = true;
            bt_next.Enabled = true;
            Repeater1.DataSource = End(1);
            Repeater1.DataBind();
            //显示当前页数
            nowpage.Text = "1";
            bt_up.Enabled = false;
        }
    
        void bt_up_Click(object sender, EventArgs e)
        {
            //获取下一页查询页数
            int page = Convert.ToInt32(nowpage.Text);
            int uppage = page - 1;        
            if (uppage < 1)
            {
                return;
            }
            if (page == 1)
            {
                bt_first.Enabled = false;
                bt_up.Enabled = false;
            }
            //执行查询语句
            Repeater1.DataSource = End(uppage);
            Repeater1.DataBind();
            //显示当前页数
            nowpage.Text = uppage.ToString();
            //上一页按钮不可用
    
            bt_next.Enabled = true;
            bt_last.Enabled = true;
        }
    
        void bt_next_Click(object sender, EventArgs e)
        {
            //上一页按钮可用
            bt_first.Enabled = true;
            bt_up.Enabled = true;
            //获取下一页查询页数
            int page = Convert.ToInt32(nowpage.Text);
            int nextpage = page + 1;
            //下一页按钮不可用
            if (nextpage > Maxpage())
            {
                bt_last.Enabled = false;
                bt_next.Enabled = false;
                return;
            }
            //执行查询语句
            Repeater1.DataSource = End(nextpage);
            Repeater1.DataBind();
            //显示当前页数
            nowpage.Text = nextpage.ToString();
        }
    
        void bt_last_Click(object sender, EventArgs e)
        {
            bt_first.Enabled = true;
            bt_up.Enabled = true;
    
            Repeater1.DataSource = End(Maxpage());
            Repeater1.DataBind();
            //显示当前页数
            nowpage.Text = Maxpage().ToString();
            bt_next.Enabled = false;
        }
        //总页数方法
        public int Maxpage()
        {
            int end = 0;
            int item = Count();
            decimal a = Convert.ToDecimal(item) / num;
            end = Convert.ToInt32(Math.Ceiling(a));
            return end;
        }
    
    
    
        void Button1_Click(object sender, EventArgs e)
        {
            int count = 0;
            int page = Convert.ToInt32(nowpage.Text);
            string tsql = "select top " + num + " *from Car where ids not in(select top " + num * (page - 1) + " ids from Car ";
            string tasp = " ";
            Hashtable hs = new Hashtable();
            if (name.Text.Length > 0)
            {
                tsql += " where name like @a";
                tasp += " )and name like @a";
                hs.Add("@a", "%" + name.Text.Trim() + "%");
                count++;
    
            }
            if (oiltext.Text.Length > 0)
            {
                if (count > 0)
                {
                    tsql += " and oil " + oil.SelectedValue + "@b";
                    tasp += " and oil" + oil.SelectedValue + "@b";
    
                }
                else
                {
                    tsql += " where oil " + oil.SelectedValue + "@b";
                    tasp += " )and oil" + oil.SelectedValue + "@b";
                }
                hs.Add("@b", oiltext.Text.Trim());
                count++;
            }
            if (price.SelectedValue != null)
            {
                if (count > 0)
                {
                    tsql += " and " + price.SelectedValue;
                    tasp += " and " + price.SelectedValue;
                }
                else
                {
                    tsql += " where " + price.SelectedValue;
                    tasp += " )and " + price.SelectedValue;
                }
                count++;
            }
            else
            {
                tsql += ")";
            }
            tsql = tsql + tasp;
            Label1.Text = tsql;
            Repeater1.DataSource = new CarData().SelectAll(tsql, hs);
            Repeater1.DataBind();
        }
        //总查询方法
        public List<Car> End(int page)
        {
    
            int count = 0;
            string tsql = "select top " + num + " *from Car where ids not in(select top " + num * (page - 1) + " ids from Car ";
            string tasp = " ";
            Hashtable hs = new Hashtable();
            if (name.Text.Length > 0)
            {
                tsql += " where name like @a";
                tasp += " )and name like @a";
                hs.Add("@a", "%" + name.Text.Trim() + "%");
                count++;
            }
            if (oiltext.Text.Length > 0)
            {
                if (count > 0)
                {
                    tsql += " and oil " + oil.SelectedValue + "@b";
                    tasp += " and oil" + oil.SelectedValue + "@b";
    
                }
                else
                {
                    tsql += " where oil " + oil.SelectedValue + "@b";
                    tasp += " )and oil" + oil.SelectedValue + "@b";
                }
                hs.Add("@b", oiltext.Text.Trim());
                count++;
            }
            if (price.SelectedValue != null)
            {
                if (count > 0)
                {
                    tsql += " and " + price.SelectedValue;
                    tasp += " and " + price.SelectedValue;
                }
                else
                {
                    tsql += " where " + price.SelectedValue;
                    tasp += " )and " + price.SelectedValue;
                }
                count++;
            }
            else
            {
                tsql += ")";
            }
            tsql = tsql + tasp;
            Label1.Text = tsql;
    
            List<Car> clist = new CarData().SelectAll(tsql, hs);
            return clist;
        }
        //查询最大页数
        public int Count()
        {
            int end = 0;
            int count = 0;
            string tsql = "select count(*) from Car ";
            Hashtable hs = new Hashtable();
            if (name.Text.Length > 0)
            {
                tsql += " where name like @a";
    
                hs.Add("@a", "%" + name.Text.Trim() + "%");
                count++;
            }
            if (oiltext.Text.Length > 0)
            {
                if (count > 0)
                {
                    tsql += " and oil " + oil.SelectedValue + "@b";
                }
                else
                {
                    tsql += " where oil " + oil.SelectedValue + "@b";
                }
                hs.Add("@b", oiltext.Text.Trim());
                count++;
            }
            if (price.SelectedValue != null)
            {
                if (count > 0)
                {
                    tsql += " and " + price.SelectedValue;
                }
                else
                {
                    tsql += " where " + price.SelectedValue;
                }
                count++;
            }
            end = new CarData().SelectCount(tsql, hs);
            return end;
        }
    }
    数据访问层
  • 相关阅读:
    描述网络的优点与缺点
    外键之表格三种关系
    Mysql完整性约束
    Mysql数据类型
    mysql的基本语句
    Mysql的基本安装
    type与object的关系
    反射
    面向对象内置方法(进阶)
    Python 的五种io模型理解
  • 原文地址:https://www.cnblogs.com/hclyz/p/6907607.html
Copyright © 2011-2022 走看看