【2017-5-24】WebForm 条件查询

实体类

    public int ids { get; set; }
    public string code { get; set; }
    public string name { get; set; }
    public decimal oil { get; set; }
    public decimal price { get; set; }

封装类

注意引用using System.Data.SqlClient;

SqlConnection conn = null;
    SqlCommand cmd = null;

    public carData()
    {
        conn = new SqlConnection("server=.;database=One;user=sa;pwd=123");
        cmd = conn.CreateCommand();
    }

    //查询全部
    public List<car> SelectAll()
    {
        List<car> clist = new List<car>();
        cmd.CommandText = "select * from car";
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                car c = new car();
                c.ids = Convert.ToInt32(dr["ids"]);
                c.code = dr["code"].ToString();
                c.name = dr["name"].ToString();
                c.oil = Convert.ToDecimal(dr["oil"]);
                c.price = Convert.ToDecimal(dr["price"]);
                clist.Add(c);
            }
        }
        conn.Close();
        return clist;
    }

    //分页查询
    public List<car> SelectAll(int count, int number)
    {
        List<car> clist = new List<car>();
        cmd.CommandText = "select top " + count + " * from car where ids not in(select top " + (count * (number - 1)) + " ids from car)";
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                car c = new car();
                c.ids = Convert.ToInt32(dr["ids"]);
                c.code = dr["code"].ToString();
                c.name = dr["name"].ToString();
                c.oil = Convert.ToDecimal(dr["oil"]);
                c.price = Convert.ToDecimal(dr["price"]);
                clist.Add(c);
            }
        }
        conn.Close();
        return clist;
    }

    //查询数据条数
    public int SelectCount()
    {
        int a = 0;
        cmd.CommandText = "select count(*) from car";
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        dr.Read();
        a = Convert.ToInt32(dr[0]);
        conn.Close();
        return a;
    }

    //条件查询
    public List<car> SelectAll(string tsql, Hashtable hs)
    {
        List<car> clist = new List<car>();
        cmd.CommandText = tsql;
        cmd.Parameters.Clear();
        foreach(string h in hs.Keys)
        {
        cmd.Parameters.AddWithValue(h,hs[h]);
        }
        conn.Open();
        SqlDataReader dr = cmd.ExecuteReader();
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                car c = new car();
                c.ids = Convert.ToInt32(dr["ids"]);
                c.code = dr["code"].ToString();
                c.name = dr["name"].ToString();
                c.oil = Convert.ToDecimal(dr["oil"]);
                c.price = Convert.ToDecimal(dr["price"]);
                clist.Add(c);
            }
        }
        conn.Close();
        return clist;
    }

前端

名称:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        油耗:<asp:DropDownList ID="DropDownList1" 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="TextBox2" runat="server"></asp:TextBox>
        价格:<asp:DropDownList ID="DropDownList2" runat="server">
            <asp:ListItem text="任意金额" Value="null"></asp:ListItem>
            <asp:ListItem text="小于30万" Value="price < 30"></asp:ListItem>
            <asp:ListItem text="大于30万小于40万" Value="price > 30 and price < 40"></asp:ListItem>
            <asp:ListItem text="大于40万小于50万" Value="price > 40 and price < 50"></asp:ListItem>
            <asp:ListItem text="大于50万" Value="price > 40"></asp:ListItem>
           </asp:DropDownList>
        &nbsp;&nbsp;&nbsp;&nbsp;

        <asp:Button ID="Button1" runat="server" Text="查询" />

        <br />
        <br />
        <br />
        <br />
        <br />
        <br />
        <table style="width: 100%; background-color: #0094ff; text-align: center;">
            <tr>
                <td>Ids</td>
                <td>编号</td>
                <td>名称</td>
                <td>油耗</td>
                <td>价格</td>
            </tr>

            <asp:Repeater ID="Repeater1" runat="server">
                <ItemTemplate>
                    <tr style="background-color: #fff;">
                        <td><%#Eval("ids") %></td>
                        <td><%#Eval("code") %></td>
                        <td><%#Eval("name") %></td>
                        <td><%#Eval("oil") %></td>
                        <td><%#Eval("price") %></td>
                    </tr>
                </ItemTemplate>
            </asp:Repeater>
        </table>

后台

if (!IsPostBack)
        {
            Repeater1.DataSource = new carData().SelectAll();
            Repeater1.DataBind();
        }
        //查询按钮
        Button1.Click += Button1_Click;
    }

    void Button1_Click(object sender, EventArgs e)
    {
        //防止字符串注入攻击,将用户自己输得内容放到哈希表集合当中
        Hashtable hs = new Hashtable();
        int count = 0;
        string tsql = "select * from car ";
        if (TextBox1.Text.Trim().Length > 0)
        {
            tsql += "where name like @a ";
            hs.Add("@a", "%" + TextBox1.Text.Trim() + "%");
            count++;
        }
        if (TextBox2.Text.Trim().Length > 0)
        {
            if (count > 0)
            {
                tsql += "and oil " + DropDownList1.SelectedValue + " @b ";
            }
            else
            {
                tsql += "where oil " + DropDownList1.SelectedValue + " @b ";
            }
            hs.Add("@b", "TextBox2.Text.Trim()");
            count++;
        }
        if (DropDownList2.SelectedValue != "null")
        {
            if (count > 0)
            {
                tsql += "and " + DropDownList2.SelectedValue;
            }
            else
            {
                tsql += "where " + DropDownList2.SelectedValue;
            }
            count++;
        }
        //数据绑定
        Repeater1.DataSource = new carData().SelectAll(tsql,hs);
        Repeater1.DataBind();
    }
时间: 2024-11-07 15:24:47

【2017-5-24】WebForm 条件查询的相关文章

Webform中linq to sql多条件查询(小练习)

多条件查询:逐条判断,从第一个条件开始判断,如果满足,取出放入集合,再从集合中查询第二个条件... aspx代码: 1 <body> 2 <form id="form1" runat="server"> 3 4 <br /> 5 <asp:Label ID="Label1" runat="server" Text="关键字:"></asp:Label&g

2014/11/24 条件查询

一.多个条件查询:in.between    select * from category where parent='013' or parent='12' or parent='011'等于select * from category where parent in ('011',''012','013')in相当于多个 or若查询不在“in”范围内的,in前面加 not ,即 not in    select * from category where ids>500 and ids<5

关于不定项参数的查询方法(多条件查询)

如果要进行一个多条件的查询,但又不知道用户到底对哪些条件进行了设定,所以,我们在编辑一个多条件查询的时候,会遇到这样的问题. 那么我们可以通过以下的方式进行解决: 假设一个场景-->       如下图:其中Customer.class 包含了以下的所有属性 开始解决问题: 那么我们在CustomerDao中可以这样进行编写: public class CustomerDao{ private QueryRunner qr = new TxQueryRunner(); //TxQueryRunn

PHP-----练习-------租房子-----增删改查,多条件查询

练习-------租房子-----增删改查,多条件 一 .题目要求: 二 .做法: [1]建立数据库 [2]封装类文件------DBDA.class.php 1 <?php 2 class DBDA 3 { 4 public $fuwuqi="localhost"; //服务器地址 5 public $yonghuming="root";//用户名 6 public $mima="";//密码 7 8 public $dbconnect;

基于Struts2+Hibernate的DetachedCriteria多条件查询

上一篇我们讲诉了基于SSH框架利用Criteria的多条件查询,这一篇我们就接着来看基于SSH框架利用DetachedCriteria的多条件查询. 一.Jsp表单查询页 1 <form action="${pageContext.request.contextPath}/CourseTypeAction_listCourse.action" 2 method="post"> 3 <table width="88%" borde

基于Struts2+Hibernate的Criteria多条件查询

Hibernate 定义了CriteriaSpecification接口规范用来完成面向对象的条件查询,Criteria 和 DetachedCriteria 就是CriteriaSpecification的子接口. 在进行本篇的内容之前,我们先来大致说一说Criteria 和 DetachedCriteria 的主要区别: Criteria 和 DetachedCriteria 的创建的形式不一样, Criteria 是在线的,所以它是由 Hibernate Session 进行创建的:而 D

(十五)条件查询

条件查询信息列表 1.  在baseDao.baseDaoImpl中编写和实现findObjects(String hql, List<Object> parameters) 2.  在service.serviceImpl中调用baseDao中的条件查询方法 3.  在action中用service中新写的findObjects(String hql, List<Object> parameters)进行条件查询 4.  添加listUI.jsp中的查询方法. 优化查询-查询工具

MSSQL 4表联查,子查询,函数统计,分组条件查询综合应用实例

1 SELECT 2 [UserName] 3 ,[Yhxm] 4 ,[Qx] 5 ,[Phone] 6 ,[Number] = COUNT([UserName]) 7 FROM 8 (SELECT 9 [UserName] = A.[username] 10 ,[Yhxm] = B.[xm] 11 ,[Qx] = D.[P_Power] 12 ,[Phone] = B.[dh] 13 ,[DayCount] = (SELECT COUNT(*) FROM [Caihuashun_FuJian_

动态多条件查询分页以及排序(一)--MVC与Entity Framework版url分页版

一.前言 多条件查询分页以及排序  每个系统里都会有这个的代码 做好这块 可以大大提高开发效率  所以博主分享下自己的6个版本的 多条件查询分页以及排序 二.目前状况 不论是ado.net 还是EF 在做多条件搜索时 都有这类似的代码 这样有几个不好的地方 1.当增加查询条件,需要改代码,对应去写相应的代码. 2.对多表查询以及or的支持 不是很好.而我们很常见的需求不可能是一个表的查询 3. 这样写表示层直接出现 了SQL语句 或者 linq 的拉姆达表达式  这是很不好的 表示层不应该知道数