LINQ 【增、删、改、查】数据绑定

LINQ,语言集成查询(Language Integrated Query)

是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。

 

一、创建 LINQ

  在项目下创建 linq to SQL 类,

  将相应的数据库表拖入即可

 

 

 

二、LINQ 的属性拓展

  对 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;
        }         
    }                            //从另一个表中抓取返回值
}
属性扩展

 

             -- 有主外键关系的扩展,可直接抓取

 

三、查询全部,数据展示

 1、创建 linq 数据库文件的 数据库上下文上下文对象

 UsersDataClassesDataContext  con = new  UsersDataClassesDataContext( );

                                      -- UsersDataClassesDataContext  创建linq 数据库是创建的类

2、通过上下文对象获取数据,绑定数据

list<Users> = con.Users .ToList ();

          -- con.Users   通过上下文对象获取 Users 中的全部对象 

          -- 通过 con 获取的对象是 linq 类型,  .Tolist() 转换成集合

 

       if (!IsPostBack)
        { 
            using (UsersDataClassesDataContext con=new UsersDataClassesDataContext()  )
            {
               
                Repeater1.DataSource =con.Users .ToList ();

                Repeater1.DataBind ();
      
            }
       
        }
绑定所有数据--加载绑定

 

  -- using 编写一个作用域,括号内创建一个上下文对象

  -- 创建的对象只在花括号里使用,走完花括号就不存在了  

  --using 这个方法,每次在数据库开启时都是全新的对象

       这个对象用完后会自动消失,不消耗内存。

 

四、添加

 

  //提交
    void Button1_Click(object sender, EventArgs e)
    {
        Users u = new Users();

        u.Username = TextBox1.Text;
        u.Password = p1.Text;
        u.Nickname = TextBox2.Text;
        u.Sex = RadioButtonList1.Items[0].Selected;
        u.Birthday = Convert.ToDateTime(Text_Bir.Text);
        u.Nation = Dr4.SelectedValue;


        using (UsersDataClassesDataContext  con = new UsersDataClassesDataContext ())
        {
            con.Users.InsertOnSubmit(u);    //u 要添加的数据对象
            con.SubmitChanges();
        }

        Response.Redirect("zhanshi.aspx");
    }
添加数据 -- 提交按钮后台代码

 

con.Users.InsertOnSubmit(u);     

      ( 上下文对象 . 表 . 方法 )         -- 准备添加, 

con.SubmitChanges();

                                   -- 提交所有数据

 

五、删除

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class delete : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string id = Request["i"];

        using (UsersDataClassesDataContext con = new UsersDataClassesDataContext())
        {
              //根据主键值查询出对应的这个对象
            Users us = con.Users.Where(r => r.Ids.ToString() == id).FirstOrDefault();

            if (us != null)
            {
                con.Users.DeleteOnSubmit(us);
                con.SubmitChanges();

               
            }

            Response.Redirect("zhanshi.aspx");
        }

    }
}
删除-- 删除页后台代码

 

Users us = con.Users.Where( r => r.Ids.ToString() == id ).FirstOrDefault();     // lambda 表达式

         -- FirstOrDefault()  : 根据前面查询的,取第一条,如果没有返回 null

         -- r   :表示任何一行

         --  =>   :固定格式

 

con.Users.DeleteOnSubmit(us);

con.SubmitChanges();

 

六、修改

 

    //提交按钮
    void Button1_Click(object sender, EventArgs e)
    {
        string st = Request["i"];

        using (UsersDataClassesDataContext con = new UsersDataClassesDataContext())
        {

            Users u = con.Users.Where(r => r.Ids.ToString() == st).FirstOrDefault();

            if (u != null)
            {
                if (p1.Text.Length > 0)
                    u.Password = p1.Text;

                u.Nickname = TextBox2.Text;
                u.Sex = RadioButtonList1.Items[0].Selected;
                u.Birthday = Convert.ToDateTime(Text_Bir.Text);
                u.Nation = Dr4.SelectedValue;


                con.SubmitChanges();


                Response.Write("<script>alert('修改成功!')</script>");
                Response.Redirect("zhanshi.aspx");
                
            }

        }

    }
修改 -- 修改按钮后台代码

 

  -- con.SubmitChanges();

        各修改数据准备过程就是准备修改过程,不用再用上下文对象来准备。直接一把提交

 

posted @ 2017-06-02 11:32  唐宏昌  阅读(424)  评论(0编辑  收藏  举报