zoukankan      html  css  js  c++  java
  • LinQ的增删改查

    LINQ,语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。

    高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名。

    1、LinQ创建

    Linq文件是dbml结尾,一个数据库对应一个Linq文件主外键

    (1)首先表格要有主外键关系

    (2)添加新项 LinQ to SQL类 ,起名为数据库名字

    (3)服务器资源管理器 --连接到数据库(相当于ADO.NET中的连接字符串)

    服务器名:.;使用SQL Sever身份验证:用户名sa;选择或输入数据库名称;

    (4)将需要的表拖拽到其中(相当于ADO.NET中生存实体类)

    (5)创建数据访问类

    LinQlianxiDataContext con = null; // LinQlianxiDataContext---数据库名+DataContext
    数据库名 public Usersdata() 
    {
    con
    = new LinQlianxiDataContext();//实例化
    }

    2、属性扩展

    Linq的成员变量是问号型

    C#语法中问号(?)的运算符是指:可以为 null 的类型。

    public partial class Users //这个类是Users类的一部分
    {
        //性别属性扩展
        public string Sexstr 
        {
            get {
                string sexs="<暂无>";
                if(this._Sex !=null)//先判断是否为空
                {
                    sexs = Convert.ToBoolean(this._Sex)?"":"";//将布尔问号型转换为布尔型
                }
                return sexs;
            }
        }  
    //民族属性扩展 存在外键关系的属性扩展
        public string Nationname 
        {
            get { return this.Nation1.Nationname; }//this.外键有关的表.字段名
        }

    3、增删改查

    与ADO.NET 不同处在数据访问类

       //查找所有  
    public
    List<Users> select() { return con.Users.ToList();//con.表名.ToList(); ToList()--查找所有 }
    //根据主键值查找一条数据
    public Users selectonly(string name) {
    //where(Lamdba表达式)--查找条件 FirstOrDefault--查找返回第一条或空

    return con.Users.Where(a =>a.UserName==name).FirstOrDefault();
    } 
    //添加数据
    public bool insert(Users u)
    {
    bool b=false;
    try{
    con.Users.InsertOnSubmit(u); //对表进行添加操作
    con.SubmitChanges(); //执行添加
    b
    = true;
    }
    catch{}
    return b;
    }
    //删除数据
    public bool delete(string name) { bool b=false;
    //删除前先进行查找 Users u
    = con.Users.Where(a =>a.UserName==name).FirstOrDefault(); if(u !=null)//有返回值 { try { con.Users.DeleteOnSubmit(u);//DeleteOnSubmit()的参数是一个对象 con.SubmitChanges(); b = true; } catch { } } return b; }
    //修改数据
    public bool update(Users u) { bool b = false;
    //查找出修改前的数据 Users uu
    = con.Users.Where(a => a.UserName == u.UserName).FirstOrDefault(); if (u != null) { try {
    //用修改后的值给修改前的值赋值 uu.UserName
    = u.UserName; uu.PassWord = u.PassWord; uu.NickName = u.NickName; uu.Sex = u.Sex; uu.Birthday = u.Birthday; uu.Nation = u.Nation; con.SubmitChanges();//执行 b = true; } catch { } } return b; }
  • 相关阅读:
    atitit.session的原理以及设计 java php实现的异同
    atitit.破解 拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结
    java softReference 详解
    android开发:TextView中android:autoLink属性的作用
    抽象类和接口的简单差别
    android一个简单的线程实例
    Java 批注
    最简单的菜单操作
    AsyncTask的参数介绍
    (转)android中ListView在划屏到底部的时候动态添加ListView的Item实现
  • 原文地址:https://www.cnblogs.com/zhang-dandan-1/p/6036266.html
Copyright © 2011-2022 走看看