zoukankan      html  css  js  c++  java
  • LinQ to sql简介及增删改查

    Linq to sql 类 LinQ它就是一个集成化的数据库访问类,它会自动生成许多原本需要我们自己创建的东西;

    它和ADO.NET是一样的东西,都是为了访问数据库而出现的,EF框架

    一、创建LinQ类

    1.在创建号的网站项目上右击添加,添加一个LinQ SQL类(图1)

    2.点选服务器资源管理器,点击左上小插头图标,弹出连接数据库页面,将页面中的信息填写,点击确定按钮(图2)

    3.左侧列表中出现在填写连接数据库页面时所选择的数据库,选择其中要使用的表,用鼠标按住直接拖到右侧空白区,完成实体类自动封装(图3)

    注:用LinQ连接数据库时,选择的表必须设有主键,否则读取不到

    图1 :

    图2:

    图3:

    二、LinQ数据库操作类的写法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    /// <summary>
    /// StudentData 的摘要说明
    /// </summary>
    public class StudentData
    {
        DataStudentDataContext con = null;
        public StudentData()
        {
            con = new DataStudentDataContext();
        }
    
    
        //查询学生表所有信息
        public List<Student>  selectAll() 
        {
            List<Student> list = new List<Student>();
            list = con.Student.ToList();//返回一个泛型集合
            return list;
        }
        
    
        //根据编号查询此编号学生的信息
        public Student select(string code) 
        {
            Student stu = new Student();
            //查找学生表中编号为传过来的编号的信息,取第一条
            stu = con.Student.Where(r => r.code == code).FirstOrDefault();
            return stu;
        }
    
    
        //向学生表中添加一条信息
        public void insert(Student stu) 
        {
            con.Student.InsertOnSubmit(stu);//将传过来的这条信息,添加到提交按钮
            con.SubmitChanges();//执行添加方法
        }
    
    
        //根据编号删除此学生的信息
        public void dele(string code) 
        {
            //先根据编号查询出要删除学生的信息
            var stu = con.Student.Where(r => r.code == code).FirstOrDefault();
            con.Student.DeleteOnSubmit(stu);//将这条信息放到删除方法里面
            con.SubmitChanges();//执行这个删除方法
    
        }
    
    
        //修改学生表中的信息
        public void update(Student s) 
        {
            //先通过编号查询出要修改的这条信息
            var ss = con.Student.Where(r => r.code == s.code).FirstOrDefault();
            //再将传过来的修改好的信息挨个赋值给这条信息的每一项
            ss.code = s.code;
            ss.name = s.name;
            ss.sex = s.sex;
            ss.birthday = s.birthday;
            ss.score = s.score;
            con.SubmitChanges();//执行这个方法; 注:写完方法一定要进行这一步执行才可以有效
        }
    }

    三、LinQ封装实体类字段扩展

    使用linq连接数据库,会自动封装实体类,无法在他封装好的代码中直接写字段扩展,但是,他封装的类是partial可以进行扩展的,在自动封装实体类时类名就是用的数据库使用的表名,所有自己创建一个同名的类,并且也是public partial可补充的,删掉原页面的构造函数,在创建的类中直接写字段扩展方法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    /// <summary>
    /// Student 的摘要说明
    /// </summary>
    public partial class Student
    {
        public string sextr 
        {
            get {
                if (_sex != null)
                {
                    return (bool)_sex ? "" : "";
                }
                else 
                {
                    return "无数据";
                }
            }
        }
    }
  • 相关阅读:
    C++实现双缓冲
    [python]初探socket
    HTTP 状态代码表示什么意思?
    今天安装了麒麟系统
    初学python类
    python 如何在一个for循环中遍历两个列表
    python中xrange和range的异同
    再学python类(终结篇)
    常见浏览器兼容问题、盒模型2种模式以及css hack知识讲解
    原生JS实现瀑布流
  • 原文地址:https://www.cnblogs.com/zyg316/p/5743035.html
Copyright © 2011-2022 走看看