使用 linq 在网页上对用户信息增删改,组合查询,分页显示

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; /// <summary>
/// Users 的摘要说明
/// </summary>
public partial class Users
{
public string SexStr
{
get
{
return Convert.ToBoolean(_Sex) ? "男" : "女";
}
} public string BirStr
{
get
{
return Convert.ToDateTime(_Birthday).ToString("yyyy年MM月dd日");
} //DateTime? 型,带问号,最好转换一下
} public string Nationn
{
get
{
return Nation1.NationName;
}
}
}

users--属性扩展

<%@ 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>
</head>
<body>
<form id="form1" runat="server">
<br /><br /> 用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 性别:<asp:DropDownList ID="DropDownList2" runat="server">
<asp:ListItem Value="null" Text=""></asp:ListItem> <%--留下空白选项 全选--%>
<asp:ListItem value="true" >男</asp:ListItem>
<asp:ListItem value="false" >女</asp:ListItem>
</asp:DropDownList> 民族:<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Value ="null" Text=""></asp:ListItem> <%--留下空白选项 全选--%>
</asp:DropDownList> <asp:Button ID="Button1" runat="server" Text="查询" />
<br /><br /> <table style="width: 100%; text-align: center; background-color: navy">
<tr style="color: white">
<td>编号</td>
<td>用户名</td>
<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("Username") %></td>
<td><%#Eval("Password") %></td>
<td><%#Eval("Nickname") %></td>
<td><%#Eval("SexStr") %></td>
<td><%#Eval("BirStr") %></td>
<td><%#Eval("Nationn") %></td>
<td>
设置
删除
</td>
</tr>
</ItemTemplate>
</asp:Repeater> <tr>
<td style="color: white" >
共有 <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 条记录 </td>
</tr>
</table> 第[<asp:Label ID="Label2" runat="server" Text=""></asp:Label>]页
共[<asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>]页
<asp:Button ID="But_up" runat="server" Text="上一页" />
<asp:Button ID="But_dow" runat="server" Text="下一页" /> </form>
</body>
</html>

前端

using System;
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 pagelist = ; //每页显示3条数据 protected void Page_Load(object sender, EventArgs e)
{
Button1.Click += Button1_Click;
But_up.Click += But_up_Click;
But_dow.Click += But_dow_Click; if (!IsPostBack)
{
using (Data0216_DataClassesDataContext con = new Data0216_DataClassesDataContext())
{
//绑定民族
//DropDownList1.DataSource = con.Nation.ToList();
//DropDownList1.DataTextField = "NationName";
//DropDownList1.DataValueField = "NationCode"; 用此法绑定数据无法留空白选项,
//DropDownList1.DataBind(); 空选项为此项全选 //绑定民族
foreach (Nation uu in con.Nation.ToList())
{
ListItem li = new ListItem();
li.Text = uu.NationName;
li.Value = uu.NationCode; DropDownList1.Items.Add(li);
} //绑定所有记录
List<Users> ulist = con.Users.ToList(); Repeater1.DataSource = ulist.Take(pagelist);
Repeater1.DataBind(); //共多少条记录
Label1.Text = ulist.Count.ToString(); //共多少页
Label3.Text = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(ulist.Count) / pagelist)).ToString(); } } } //下一页
void But_dow_Click(object sender, EventArgs e)
{
using (Data0216_DataClassesDataContext con = new Data0216_DataClassesDataContext())
{
//获取下一页页数
int a = Convert.ToInt32(Label2.Text) +; //调方法绑定数据 Repeater1.DataSource = select(con).Skip((a-)*pagelist).Take(pagelist);
Repeater1.DataBind(); //修改显示页数 Label2.Text = a.ToString();
} } //上一页
void But_up_Click(object sender, EventArgs e)
{
using (Data0216_DataClassesDataContext con = new Data0216_DataClassesDataContext())
{
//获取下一页页数
int a = Convert.ToInt32(Label2.Text) - ; //调方法绑定数据 Repeater1.DataSource = select(con).Skip((a-)*pagelist).Take(pagelist);
Repeater1.DataBind(); //修改显示页数 Label2.Text = a.ToString();
}
} //组合查询
void Button1_Click(object sender, EventArgs e)
{
using (Data0216_DataClassesDataContext con = new Data0216_DataClassesDataContext())
{
Repeater1.DataSource = select(con).Take(pagelist); ;
Repeater1.DataBind();
}
} //查询方法
public List<Users> select(Data0216_DataClassesDataContext con)
{ List<Users> ulist = con.Users.ToList(); //用户名
if (TextBox1.Text.Trim().Length < )
{
ulist = ulist.Where(r => r.Username.Contains(TextBox1.Text.Trim())).ToList(); } //性别
if (DropDownList2.SelectedValue != "null")
{ ulist = ulist.Where(r => r.Sex == Convert.ToBoolean(DropDownList2.SelectedValue)).ToList();
} //民族
if (DropDownList1.SelectedValue != "null")
{ ulist = ulist.Where(r => r.Nation == DropDownList1.SelectedValue).ToList(); } Label1.Text = ulist.Count.ToString();//共多少记录 //共多少页
Label3.Text = Convert.ToInt32(Math.Ceiling(Convert.ToDecimal(ulist.Count) / pagelist)).ToString(); return ulist; } }

后台代码

-- 将组合查询写成一个方法,调用方法查询所有结果后,上下文对象关闭消失,

由于本案例中在绑定数据时存在扩展属性,所以需要再开一次数据库,需要再创建一个上下文对象,

所以在本案例中,查询方法需要传入一个上下文对象,在上一页、下一页中都要创建上下文对象,

-------------------------------------------------------

LINQ 小项目【组合查询、分页】的更多相关文章

  1. PredicateBuilder类(linq多条件组合查询)

    PredicateBuilder类如下: public static class PredicateBuilder { /// <summary> /// 机关函数应用True时:单个AN ...

  2. Hibernate 组合查询+分页

    MVC模型:Hibernate+Struts2 dao层: public List<UserBean> searchList(UserBean uBean,int pageIndex,in ...

  3. linq分页组合查询

    一.linq高级查 1.模糊查(字符串包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r = ...

  4. Webform(Linq高级查、分页、组合查询)

    一.linq高级查 1.模糊查(包含) 1 public List<User> Select(string name) 2 { 3 return con.User.Where(r => ...

  5. Spring Boot 结合Spring Data结合小项目(增,删,查,模糊查询,分页,排序)

    本次做的小项目是类似于,公司发布招聘信息,因此有俩个表,一个公司表,一个招聘信息表,俩个表是一对多的关系 项目整体结构: Spring Boot和Spring Data结合的资源文件 applicat ...

  6. 【2017-06-02】Linq高级查询,实现分页组合查询。

    1.以XXX开头 2.以XXX结尾 3.模糊查询 4.求个数 5.求最大值 6.求最小值 7.求平均值 8.求和 9.升序 10.降序 11.分页 Skip()跳过多少条 Take()取多少条 12. ...

  7. Linq组合查询与分页组合查询结合

    1.组合查询 <div>姓名:<asp:TextBox ID="T1" runat="server"></asp:TextBox& ...

  8. 佩特来项目经验小集合(2)___组合查询存储过程,报错 &quot;varchar JBID=&#39;&#39; 转换成数据类型 int 时失败&quot;

       今天写一个组合查询的存储过程遇到这样一个问题:在将 varchar 值 'SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1 and JBID ='' ...

  9. webform 分页、组合查询综合使用

    界面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx ...

随机推荐

  1. Ubuntu 利用 crontab 和 notify-send 定时发送桌面通知,提示该休息啦

    [经测试,每隔多少分钟执行并不像自己想象的一样] 比如:每隔50分钟执行一次提醒      */50 * * * * export DISPLAY=:0.0; notify-send -i /home ...

  2. 公司git服务器记录

    gitolite:server/web/AmomeWebApp.git gitolite:server/web/AmomeBackendManage.git git@192.168.1.183 === ...

  3. python实现netcat部分功能源代码

    #!/opt/local/bin/python2.7 import sys import socket import getopt import threading import subprocess ...

  4. vue操作的填坑之旅

    1.渲染时图片存在,但损坏,会出现破损图,界面很丑呀 解决方案:调用vue显示的图片的时候会有一些图片404的问题,为了界面的美观,这里进行图片错误是显示默认图片的处理,下面贴出代码 data: { ...

  5. linux下使用eclipse打开esp32工程文件,并进行编译下载。

    在之前的文章中,已经讲过将esp-idf 运用linux自带的工具下载,但是为了开发的系统性,这里运用eclipse来对idf进行整体的编译. 首先 cd /esp32 运行eclipse,将work ...

  6. 6. ASP.NET MVC 5.0 中的HTML Helper【HTML 帮助类】

    这篇文章,我将带领大家学习HTML Helper.[PS:上一篇-->5.ASP.NET MVC 中的Area[区域]是什么] HTML Helpers是用来创建HTML标签进而创建HTML控件 ...

  7. JavaScript中JSON对象和JSON字符串的相互转化

    一.JSON字符串转换为JSON对象 var str = '{"name":"cxh","sex":"man",&quo ...

  8. 使用diskpart命令格式化U盘

    在安装各种linux系统时,经常要使用SD卡,这里就出了个问题,就是SD卡被linux格式化之后无法在widdows下使用. 并且windows下的格式化按键对它毫无作用.笔者在摸索的过程中,找到了格 ...

  9. 机器学习基石笔记:11 Linear Models for Classification

    一.二元分类的线性模型 线性分类.线性回归.逻辑回归: 可视化这三个线性模型的代价函数, SQR.SCE的值都是大于等于0/1的. 理论分析上界: 将回归应用于分类: 线性回归后的参数值常用于pla/ ...

  10. LeetCode:111_Minimum Depth of Binary Tree | 二叉树的最小深度 | Easy

    要求:此题正好和Maximum Depth of Binary Tree一题是相反的,即寻找二叉树的最小的深度值:从根节点到最近的叶子节点的距离. 结题思路:和找最大距离不同之处在于:找最小距离要注意 ...