c# EF框架的增删改查操作

查询

cs 复制代码
        /// <summary>
        /// 查询
        /// </summary>
        private void SQLLoad()
        {
            //linq查询,方法一
            //var UserInfoList = from u in db.UserInfo//给个变量u,用来接收查询结果对象
            //select u;//查询结果对象 
            //db.UserInfo.Find(1);//依据主键查询,方法二
            //依据条件查询,如果数据返回类型是IQueryable说明是延迟查询,方法三
            //var UserInfoList = db.UserInfo.Where(u => u.ID > 0);//这里还没有开始查询
            //查询所有,方法四(不是延迟查询)  
            var UserInfoList = db.UserInfo.ToList();
            List<UserInfo> list = new List<UserInfo>();
            foreach (var userInfo in UserInfoList)
            {
                list.Add(userInfo);
            }
            dgv.DataSource = list;
        }

追加

cs 复制代码
        /// <summary>
        /// 追加
        /// </summary>
        private void Add()
        {
            UserInfo userInfo = new UserInfo
            {
                UName = "heidashuai",
                UPwd = "123",
                SubTime = DateTime.Now,
                DelFlag = 0,
                ModifiedOn = DateTime.Now,
                Remark = "皮蛋",
                Sort = "21"
            };
            //db.UserInfo.Add(userInfo);
            db.Entry<UserInfo>(userInfo).State = System.Data.Entity.EntityState.Added;
            db.SaveChanges();
        }

修改

cs 复制代码
        private void AQLUpdate()
        {
            #region 官方推荐--修改已改变的
            //UserInfo userInfo = db.UserInfo.Where(u => u.ID == 1).FirstOrDefault();//返回            的是UserInfo的代理类(包装类)
            //userInfo.UPwd = "8888";//到这一步时,包装类会给真实的类修改属性,并且会给他状态谁这位已修改状态
            //db.SaveChanges();
            查询
            //SQLLoad();
            #endregion
            #region 方式二--修改所有数据
            UserInfo userInfo = db.UserInfo.Where(u => u.ID == 1).FirstOrDefault();
            userInfo.Remark = "自律的人真帅!";
            db.Entry<UserInfo>(userInfo).State = System.Data.Entity.EntityState.Modified;
            db.SaveChanges();
            SQLLoad();
            #endregion

        }

删除

cs 复制代码
        /// <summary>
        /// 删除
        /// </summary>
        private void SQLDelete()
        {
            UserInfo userInfo = new UserInfo { ID = 21 };//也可以从数据库查询到
            //方式一
            //db.UserInfo.Attach(userInfo);
            //db.UserInfo.Remove(userInfo);


            //方式二
            //告诉上下文对此实体进行跟新操作
            db.Entry(userInfo).State = System.Data.Entity.EntityState.Deleted;
            //告诉上下文把实体的变化保存到数据库里面去
            db.SaveChanges();
        }

分页查询

cs 复制代码
        /// <summary>
        /// 分页查询
        /// </summary>
        private void Paging()
        {
            int pageIndex = 0;
            int pageSize = 0;
            if (txtIndex.Text != "" && txtSIze.Text != "")
            {
                pageIndex = Convert.ToInt32(txtIndex.Text);
                pageSize = Convert.ToInt32(txtSIze.Text);
            }
            if (pageIndex <= 0 && pageSize <= 0)
            {
                pageIndex = 1;
                pageSize = 5;
                txtIndex.Text = pageIndex.ToString();
                txtSIze.Text = pageSize.ToString();
            }

            //分页查询一一定要排序
            var userInfo = db.UserInfo.OrderBy(u => u.ID).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
            List<UserInfo> list = new List<UserInfo>();
            foreach (var item in userInfo)
            {
                list.Add(item);
            }
            dgv.DataSource = list;
        }
相关推荐
hhhjhl20 分钟前
Undici 跨端三方库仓颉适配全流程
java·开发语言·ubuntu
染指111021 分钟前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents
wangchunyu11430 分钟前
JAVA JVM内存结构与运行时数据区
java·开发语言·jvm
slongzhang_33 分钟前
linux 递归删除源码文件|递归删除目录下 *.js,但排除 *.min.js
linux·开发语言·javascript
云和数据.ChenGuang2 小时前
Python 常见特殊方法详解:__new__、__init__、__del__、__str__、__repr__ 与 __getattribute__
开发语言·人工智能·python·1024程序员节
xyouyuweizhu2 小时前
字节流与字符流:Java IO 的两条主线该怎么选
java·开发语言·python
多弗朗皮卡丘3 小时前
C++的IO流
开发语言·c++·io流·文件io流
骑着蜗牛撵大象3273 小时前
AI Agent 工程化开发实战(三):用 StateGraph 给智能体搭一条可回放的状态流水线
java·开发语言·jvm·ai·状态管理·langgraph·stategraph
itmigrate3 小时前
Rust 里的所有权误区:不是不写 clone 就叫高性能
开发语言·后端·rust
Brilliantwxx3 小时前
【Linux】 文件访问与路径解析:目录、文件名、dentry、路径缓冲与 dcache 全解析
linux·运维·服务器·开发语言·spring