zoukankan      html  css  js  c++  java
  • winform 用linq to SQL 类实现数据库的增、删、改、查 2016年02月18日

    在C#中,如果用的是SQL server的数据库,由于同是微软旗下的软件,为了方便用户操作,可以用Linq to SQL类来实现对数据库的操作,大大简化了操作。

    一、添加一个Linq to SQL的类:

    二、在资源管理器中的数据连接中,连接好数据库:

    三、将要进行操作的表,拖入到DataClasses1.dbml的操作面板中,这样就完成了对表属性的封装

    四、创建一个FruitDA的类,在里面写数据库增、删、改、查的方法,代码如下:

     public class FruitDA
        {
           private DataClasses1DataContext Context;//造一个linq to SQL类的对象 context,数据模型
    
           public FruitDA()
           {
               Context = new DataClasses1DataContext();//构造函数,在里面把context实例化一下
           }
           public void Insert(Fruit data)//增加方法
           {
               Context.Fruit.InsertOnSubmit(data);//将data数据增加到fruit表中
               Context.SubmitChanges();//有改动,提交到数据库
           }
    
           public void Update(Fruit data)//修改方法
           { 
               //先查询,后修改
               Fruit sdata = Context.Fruit.Where(r => r.Ids == data.Ids).First();
               //等号大于号是lamda表达式,等号大于号相当于list泛型集合里的 in list
               //r可以随意起名,代表一行数据;相当于Fruit data里的data,foreach每走一行就是一行的数据,一行数据就是data
               //如果相等就符合条件,如果不相等就走下一条
               //筛选完了之后,取第一条(.first)里面的数据,返回一个fruit类型的对象
    
               if (sdata != null)//判断一下,如果数据不为空,按照sdata的数据去修改data里面的数据
               {
                   
                   sdata.Name = data.Name;
                   sdata.Price = data.Price;
                   sdata.Numbers = data.Numbers;
                   sdata.Source = data.Source;
                   sdata.Stack = data.Stack;
                   sdata.Image = data.Image;
               }
               Context.SubmitChanges();//修改提交到数据库
           }
    
           public void Delete(Fruit data)//删除方法
           {
               Context.Fruit.DeleteOnSubmit(data);
               Context.SubmitChanges();
           }
    
           public List<Fruit> Select()//查询方法,返回一个fruit类型的泛型集合
           {
               return Context.Fruit.ToList();//用tolist函数将结果转化为泛型集合
           }
    
           public List<Fruit> selectbyname(string name)//模糊查询
           {
               return Context.Fruit.Where(r=>r.Name.Contains(name)).ToList();
               //看看筛选的这一行有没有像name的,用contains包不包含定义的小写的name,再转换为泛型集合返回
           }
    
           public bool checkfruit(string name, decimal price)//验证用户名密码的样式
           {
               return Context.Fruit.Where(r => r.Name == name && r.Price == price).Count() > 0;
               //筛选多个条件同时满足用&&,满足条件数据的条数用count
               //如果大于零返回true,小于等于零返回false
           }
    
           public Fruit select(string ids)//查询一条数据
           {
               return Context.Fruit.Single(r => r.Ids == ids);
               //如果查询的是主键的话,可以用single
               //不是主键,用where筛选
           }
        }

    测试代码如下:

     private void Form1_Load(object sender, EventArgs e)
            {
                List<Fruit> list = new FruitDA().Select();
                dataGridView1.DataSource = list;
            }                                                                                                            

  • 相关阅读:
    VMware安装ubuntu学习笔记(只是笔记)
    Apcahe Shiro学习笔记(二):通过JDBC进行权限控制
    Apcahe Shiro学习笔记(一):简介及运行官方Demo
    MyBatis学习(二):与Spring整合(非注解方式配置MyBatis)
    SpringMVC学习(一):搭建SpringMVC-注解-非注解
    java操作redis学习(一):安装及连接
    MyBatis学习(一):简单的运行
    Linux随笔记
    [搬运]一些构造题题解
    「不会」Min25筛
  • 原文地址:https://www.cnblogs.com/xuankai1987/p/5198609.html
Copyright © 2011-2022 走看看