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 "无数据";
            }
        }
    }
}

 

posted @ 2016-08-05 23:26  小飛  阅读(804)  评论(0编辑  收藏  举报