LINQ增删改查

前言

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

正文

从技术角度而言,LINQ定义了大约40个查询操作符,如select、from、in、where以及order by(C#中)。使用这些操作符可以编写查询语句。不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型。

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



猜你喜欢

转载自blog.csdn.net/vop444/article/details/79316551
今日推荐