• 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;
            }                                                                                                            

  • 相关阅读:
    python3 numpy基本用法归纳总结
    MySQL 中的三中循环 while loop repeat 的基本用法
    什么是网关及网关作用
    网络扫描工具nmap
    nmap基本使用方法
    nmap脚本使用总结
    用Delphi将数据导入到Excel并控制Excel
    delphi Form属性设置 设置可实现窗体无最大化,并且不能拖大拖小(写一个WM_EXITSIZEMOVE的空函数)
    Delphi 数据类型列表
    一个队列类的实现(比delphi自带的速度快70倍)(线程安全版本)
  • 原文地址:https://www.cnblogs.com/xuankai1987/p/5198609.html
Copyright © 2020-2023  润新知