zoukankan      html  css  js  c++  java
  • linq组合查询时属性扩展问题

    学习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 > 0)
                {
                    ulist = ulist.Where(r => r.Ids.ToString().Contains(TextBox1.Text.Trim())).ToList();
                }
                if (TextBox2.Text.Trim().Length > 0)
                {
                    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就已经被释放了,然而前台绑定的数据是根据上下文的属性扩展绑定的,所以当上下文释放了之后,前段进行数据展示就会报错了。

    解决方法

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

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

  • 相关阅读:
    Java_Habse_add
    Java_Habse_shell
    android Studio 出现:Unable to resolve dependency for ':app@debug/compileClasspath'
    微信小程序云函数中有以下未安装的依赖,如果未安装即全量上传
    Bittorrent Protocol Specification v1.0 中文
    BT客户端实现 Peer协议设计
    NGINX 配置 SSL 双向认证
    openssl、x509、crt、cer、key、csr、ssl、tls 这些都是什么鬼?
    ssl双向认证和单向认证原理
    网络服务器之HTTPS服务
  • 原文地址:https://www.cnblogs.com/big-lll/p/6937685.html
Copyright © 2011-2022 走看看