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

    实体类:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    /// <summary>
    /// goods 的摘要说明
    /// </summary>
    public class goods
    {
        public goods()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }
        public int ids { get; set; }
        public string goodsname { get; set; }
        public string number { get; set; }
        public string sprice { get; set; }
        public DateTime intime { get; set; }
        public string gtel { get; set; }
        public string goodsbase { get; set; }
    
    
    }

    数据访问类:

     public List<goods> select(string tsql,Hashtable hhs)
        {
            List<goods> glist = new List<goods>();
            cmd.CommandText = tsql;
            cmd.Parameters.Clear();
            foreach (string s in hhs.Keys)
            {
                cmd.Parameters.AddWithValue(s,hhs[s]);       
            }
    
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    goods g = new goods();
                    g.ids = Convert.ToInt32(dr[0]);
                    g.goodsname = dr[1].ToString();
                    g.number = dr[2].ToString();
                    g.sprice = dr[3].ToString();
                    g.intime = Convert.ToDateTime(dr[4]);
                    g.gtel = dr[5].ToString();
                    g.goodsbase = dr[6].ToString();
    
    
                    glist.Add(g);
                }
            }
            conn.Close();
            return glist;
        }

    aspx中:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <!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>
    
        <style>
            .tb1 {
                100%;
                text-align:center;
            }
            .a {
                background-color:navy;
                color:white;
            }
            .b {
                background-color:orange;
                color:white;
            }
            .b:hover {
                background-color:gray;
            }
    
    
        </style>
    
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
            货品名称:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            数量:
            <asp:DropDownList ID="DropDownList1" runat="server">
                <asp:ListItem>=</asp:ListItem>
                <asp:ListItem>&gt;=</asp:ListItem>
                <asp:ListItem>&lt;=</asp:ListItem>
            </asp:DropDownList>
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            单价:
            <asp:DropDownList ID="DropDownList2" runat="server">
                <asp:ListItem>=</asp:ListItem>
                <asp:ListItem>&gt;=</asp:ListItem>
                <asp:ListItem>&lt;=</asp:ListItem>
            </asp:DropDownList>
            <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" Text="查询" />
            <asp:Button ID="Button2" runat="server" Text="查询2" />
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            <asp:Repeater ID="Repeater1" runat="server">
                <HeaderTemplate>
                    <table class="tb1">
                <tr class="a">
                    <td>编号</td>
                    <td>货品名称</td>
                    <td>数量</td>
                    <td>单价</td>
                    <td>进货时间</td>
                    <td>联系人电话</td>
                    <td>仓库号</td>
                    <td>操作</td>
                </tr>
    
                </HeaderTemplate>
    
                <ItemTemplate>
                <tr class="b">
                    <td><%#Eval("ids") %></td>
                    <td><%#Eval("goodsname") %></td>
                    <td><%#Eval("number") %></td>
                    <td><%#Eval("sprice") %></td>
                    <td><%#Eval("intime","{0:yyyy年MM月dd日}") %></td>
                    <td><%#Eval("gtel") %></td>
                    <td><%#Eval("goodsbase") %></td>
                    <td>
                        <a href="update.aspx?id=<%#Eval("ids")%>" target="_blank">修改</a>
                        <a href="delete.aspx?id=<%#Eval("ids")%>" target="_blank">删除</a>
                    </td>
                </tr>
                </ItemTemplate>
    
                <FooterTemplate>
                    </table>
    
                </FooterTemplate>
            </asp:Repeater>
    
            当前第【<asp:Label ID="Label_nowpage" runat="server" Text="1"></asp:Label>】页&nbsp&nbsp
            共【<asp:Label ID="Label_maxpage" runat="server" Text="加载中.."></asp:Label>】页&nbsp&nbsp
            <asp:LinkButton ID="btn_prev" runat="server">上一页</asp:LinkButton>&nbsp&nbsp
            <asp:LinkButton ID="btn_next" runat="server">下一页</asp:LinkButton>
        </div>
        </form>
    </body>
    </html>

    cs中:

    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 _Default : System.Web.UI.Page
    {
    
        int c = 5;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Repeater1.DataSource = new goodsdata().select(c,1);
                Repeater1.DataBind();
            
               
                int allcount=new goodsdata().select(returntsql(1,true),hs).Count;
                Label_maxpage.Text = Convert.ToInt32(Math.Ceiling((allcount * 1.0) / c)).ToString();//查询最大页数
                btn_prev.Enabled = false;
    
            }
    
            Button2.Click += Button2_Click;
            Button1.Click += Button1_Click;
    
            btn_next.Click += btn_next_Click;
            btn_prev.Click += btn_prev_Click;
    
    
        }
    
        void btn_prev_Click(object sender, EventArgs e)//上一页
        {
            int page = Convert.ToInt32(Label_nowpage.Text) - 1;
    
            Repeater1.DataSource = new goodsdata().select(returntsql(page, false), hs);
            Repeater1.DataBind();
    
            Label_nowpage.Text = page.ToString();
            Label1.Text = returntsql(page, false);
    
            int allcount = new goodsdata().select(returntsql(1, true), hs).Count;
            Label_maxpage.Text = Convert.ToInt32(Math.Ceiling((allcount * 1.0) / c)).ToString();
            if (Label_nowpage.Text == "1")
            {
                btn_prev.Enabled = false;       
            }
            btn_next.Enabled = true;
        }
    
        void btn_next_Click(object sender, EventArgs e)//下一页
        {
            int page = Convert.ToInt32(Label_nowpage.Text)+1;
    
            Repeater1.DataSource = new goodsdata().select(returntsql(page,false),hs);
            Repeater1.DataBind();
    
            Label_nowpage.Text = page.ToString();
            Label1.Text = returntsql(page,false);
    
            int allcount = new goodsdata().select(returntsql(1, true), hs).Count;
            Label_maxpage.Text = Convert.ToInt32(Math.Ceiling((allcount * 1.0) / c)).ToString();
            if (Label_nowpage.Text == Label_maxpage.Text)
            {
                btn_next.Enabled = false;
            }
            btn_prev.Enabled = true;
        }
    
    
        Hashtable hs = new Hashtable();
        void Button1_Click(object sender, EventArgs e)//查询方法一,加分页
        {
            
            
            Label1.Text = returntsql(1,false);
            Repeater1.DataSource = new goodsdata().select(returntsql(1,false), hs);
            Repeater1.DataBind();
    
            Label_nowpage.Text = "1";
    
            int allcount = new goodsdata().select(returntsql(1, true), hs).Count;
            Label_maxpage.Text = Convert.ToInt32(Math.Ceiling((allcount * 1.0) / c)).ToString();
            if (Label_nowpage.Text == Label_maxpage.Text)
            {
                btn_next.Enabled = false;
            }
        }
    
    
        public string returntsql(int nowpagenumber,bool isall)//封装的返回sql语句的方法,isall参数为是否选择全部,用于计算总页数
        {
            hs.Clear();
            int count = 0;
            string sql = "select top " + c + "*from goods";
            if (isall)
            { sql = "select*from goods"; }
            string csql="";
            if (TextBox1.Text.Trim().Length > 0)
            {
                sql += " where goodsname like @goodsname";
                csql += " where goodsname like @goodsname";
                hs.Add("@goodsname", "%" + TextBox1.Text + "%");
                count++;
    
            }
            if (TextBox2.Text.Trim().Length > 0)
            {
                if (count > 0)
                {
                    sql += " and number" + DropDownList1.SelectedValue + " @number";
                    csql += " and number" + DropDownList1.SelectedValue + " @number";
                }
                else
                {
                    sql += " where number" + DropDownList1.SelectedValue + " @number";
                    csql += " where number" + DropDownList1.SelectedValue + " @number";
                }
                hs.Add("@number", TextBox2.Text);
                count++;
            }
            if (TextBox3.Text.Trim().Length > 0)
            {
                if (count > 0)
                {
                    sql += " and sprice" + DropDownList2.SelectedValue + " @sprice";
                    csql += " and sprice" + DropDownList2.SelectedValue + " @sprice";
                }
                else
                {
                    sql += " where sprice" + DropDownList2.SelectedValue + "@sprice";
                    csql += " where sprice" + DropDownList2.SelectedValue + "@sprice";
                }
                hs.Add("@sprice", TextBox3.Text);
                count++;
            }
            if (count > 0)
            {
                sql += " and ids not in(select top " + (c * (nowpagenumber - 1)) + " ids from goods " + csql + ")";
            }
            else
            {
                sql += " where ids not in(select top " + (c * (nowpagenumber - 1)) + " ids from goods " + csql + ")";
            }
            return sql;      
        }
    
        void Button2_Click(object sender, EventArgs e)//查询方法2,没有分页
        {
            Hashtable hs = new Hashtable();
            string sql = "select*from goods";
            if (TextBox1.Text.Trim().Length > 0)
            {
                sql += " where goodsname like @goodsname";
                hs.Add("@goodsname", "%" + TextBox1.Text + "%");
            }
            else
            { sql += " where 1=1"; }
            if (TextBox2.Text.Trim().Length > 0)
            {
                sql += " and number" + DropDownList1.SelectedValue + " @number";
                hs.Add("@number", TextBox2.Text);
            }
            else
            { sql += " and 1=1"; }
            if (TextBox3.Text.Trim().Length > 0)
            {
                sql += " and sprice= @sprice";
                hs.Add("@sprice", TextBox3.Text);
            }
            else
            { sql += " and 1=1"; }
            Repeater1.DataSource = new goodsdata().select(sql, hs);
            Repeater1.DataBind();
    
        }
    }
  • 相关阅读:
    react路由组件&&非路由组件
    react函数式组件(非路由组件)实现路由跳转
    react使用antd组件递归实现左侧菜单导航树
    【LeetCode】65. Valid Number
    【LeetCode】66. Plus One (2 solutions)
    【LeetCode】68. Text Justification
    【LeetCode】69. Sqrt(x) (2 solutions)
    【LeetCode】72. Edit Distance
    【LeetCode】73. Set Matrix Zeroes (2 solutions)
    【LeetCode】76. Minimum Window Substring
  • 原文地址:https://www.cnblogs.com/wy1992/p/6256711.html
Copyright © 2011-2022 走看看