学习linq的过程中,做一个表格的条件查询并且分页显示。显示的出的数据需要经过属性拓展来实现将需要给用户看的值显示出来。

后台绑定数据时用的是上下文----

if(!ispostback){

using (DataClassesDataContext con = new DataClassesDataContext())
{

List<Users> ulist = con.Users.ToList(); ;
Repeater1.DataSource = ulist.Skip(0).Take(count);
Repeater1.DataBind();
Lab2.Text = ye().ToString();

DropDownList1.DataSource = con.UserNation.ToList();
DropDownList1.DataTextField = "NationName";
DropDownList1.DataValueField = "NationCode";
DropDownList1.DataBind();
}}

这样在第一次加载页面时就将所有数据绑定了。

之后开始条件查询,并且将他封为一个方法

public List<Users> data()
{ using (DataClassesDataContext con = new DataClassesDataContext())
{
List<Users> ulist = con.Users.ToList();
if (TextBox1.Text.Trim().Length > )
{
ulist = ulist.Where(r => r.Ids.ToString().Contains(TextBox1.Text.Trim())).ToList();
}
if (TextBox2.Text.Trim().Length > )
{
ulist = ulist.Where(r => r.Username.Contains(TextBox2.Text)).ToList();
}
if (minzu.SelectedValue != null)
{
ulist = ulist.Where(r => r.Nation == minzu.SelectedValue).ToList();
}
return ulist;
}
}

条件查询

在分页按钮和查询按钮的点击事件里执行这个方法进行数据绑定

此时会出现报错!!

因为在执行完这个方法后 上下文 这个con就已经被释放了,然而前台绑定的数据是根据上下文的属性扩展绑定的,所以当上下文释放了之后,前段进行数据展示就会报错了。

解决方法

将上下文变量写在公共区域 让所有的方法都能引用到,然后把之前做的条件查询的方法里面上下文删掉,接受一个上下文类型的值,直接用接收的值进行查询。

在每个按钮的事件里执行方法的时候都把那个变量传进去。

linq组合查询时属性扩展问题的更多相关文章

  1. SqlProfilter监控指定数据库数据表——监控linq组合查询生成的sql

    1.例子 实际测试环境中往往很多测试都在调用数据库,那么如何使用SqlProfilter监控筛选到自己想要监看的数据库对应的表有关linq生成的sql时候就需要做如下设置了 ........... u ...

  2. ADO.NET(查询、属性扩展)

    一.ADO.NET 融合面向对象的查询语句 1.只查询一条数据 //数据访问中的select方法 public stu select(string xuehao) { stu s = null; cm ...

  3. ADO.NET 数据访问类查询、属性扩展

    今天,我首先在之前所做的人员管理系统的基础上,利用数据访问类进行了所有人员信息的查询. 主程序代码: List<Users> Ulist = new UsersData().Select( ...

  4. WebForm之Linq组合查询

    组合查询 protected void Button1_Click(object sender, EventArgs e) { //默认查询所有,返回的是Table类型,转换成IQueryAble类型 ...

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

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

  6. LINQ 组合查询 和分页查询的使用

    前端代码 <%@ Page Language="C#" AutoEventWireup="true" Debug="true" Cod ...

  7. LinQ 组合查询与分页

    1.以开头查 public List<Car> Select1(string a){ return con.Car.Where(r => r.Name.StartsWith(a)). ...

  8. 多条件动态LINQ 组合查询

    本文章转载:http://www.cnblogs.com/wangiqngpei557/archive/2013/02/05/2893096.html 参考:http://dotnet.9sssd.c ...

  9. 1.4(SQL学习笔记)分组、子查询、联结、组合查询

    一.分组 建表及数据填充语句下载:链接: https://pan.baidu.com/s/1WHYafwqKJEKq1kDwCH_Zlg 提取码: 3wy4 1.1初识分组 分组是按照某一列,将该列中 ...

随机推荐

  1. JavaScript实现文章复制加版权信息

    function addLink() { var body_element = document.getElementsByTagName('body')[0]; var selection; if( ...

  2. sass进阶篇

    @if @if 指令是一个 SassScript,它可以根据条件来处理样式块,如果条件为 true 返回一个样式块,反之 false 返回另一个样式块.在 Sass 中除了 @if 之,还可以配合 @ ...

  3. 15_游戏编程模式EventQueue

    #### 两个例子 .GUI event loop ``` while (running) { // 从事件队列里获取一个事件 Event event = getNextEvent(); // Han ...

  4. codewar代码练习2——7级晋升6级

    7级晋升到6级的过程中以做6级题以及以前未完成的题目为主,一般选择算法题或者基础题.相比之前从8级升级7级(参见此博客:http://blog.csdn.net/m0_37324740/article ...

  5. javascript版前端页面RSA非对称加密解密

    最近由于项目需要做一个url传参,并在页面显示参数内容的需求,这样就会遇到一个url地址可能会被假冒, 并传递非法内容显示在页面的尴尬情况 比如xxx.shtml?server=xxx是坏人& ...

  6. DataTable:数据库到程序的桥梁

    DataTable:是一个临时保存数据的网格虚拟表(表示内存中数据的一个表.).DataTable是ADO dot net 库中的核心对象,它无须代码就可以简单的绑定数据库,它具有微软风格的用户界面. ...

  7. 使用window.print()后,未关闭打印页面,原网页不能操作

    使用window.print()后,未关闭打印页面,原网页不能操作,此时可以试着用window.location.reload()重新加载页面解决问题.

  8. 5.7 Windows常用网络命令

    5.7 Windows常用网络命令 •ping •netstat •winipcfg/ipconfig •tracert •route 5.7.1 ping命令 •功能 –它是用来检查网络是否通畅或者 ...

  9. 《Orange’s 一个操作系统的实现》1.搭建操作系统开发环境

    书中给出了两种环境:windows和linux,平台选择根据自己喜好.本人这里选择ubuntu10.04+virtualbox作为开发平台. 1.下载.安装VirtualBox     http:// ...

  10. 用Python+Django1.9在Eclipse环境下开发web网站

    最近想学习一下python django, 按网上各位大神们的说明,试着做了一下,这里记录下来,做个笔记. 参考 http://www.cnblogs.com/linjiqin/p/3595891.h ...