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();
    
        }
    }
  • 相关阅读:
    vue_钩子函数
    vue_导出导入excel
    vue_列表渲染,动态绑定参数。
    vue_router传参params为空。
    js_与安卓和IOS进行交互
    vue_页面跳转实时刷新
    apue——无缓冲读写操作
    apue——读目录操作
    NFV-based QoS provision for Software Defined Optical Access and residential networks
    NFV-Bench A Dependability Benchmark for Network Function Virtualization Systems
  • 原文地址:https://www.cnblogs.com/wy1992/p/6256711.html
Copyright © 2011-2022 走看看