zoukankan      html  css  js  c++  java
  • 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();

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

  • 相关阅读:
    2015北京网络赛 Couple Trees 倍增算法
    POJ 1330 Nearest Common Ancestors 倍增算法的LCA
    2015北京网络赛 G Boxes BFS+打表
    Codeforces Round#320 Div2 解题报告
    HDU 5446 Unknown Treasure Lucas+中国剩余定理+按位乘
    codeforces #329 div 2 B. Anton and Lines(几何)
    codeforces #329 div 2 A. 2Char (暴力)
    hdu 1394 Minimum Inversion Number (树状数组 逆序对)
    hdu 1754 I Hate It (线段树)
    codeforces 589 G
  • 原文地址:https://www.cnblogs.com/Tanghongchang/p/6932496.html
Copyright © 2011-2022 走看看