关于C# CURD的几种写法

1.采用LINQ TO SQL

1)首先定义实体类即你用到的字段名(查询需要)
2)写类似于
查询:

     public List<实体类> GetRosterData(string companycode)
        {
            var rodata = from com in 哪个表?
                                                where com.Company == companycode
                                                    select new 实体类
                                                    {
                                                        //给字段赋值,用作后续处理
                                                        Department = com.Department,
                                                        EntryTime = com.EntryTime,
                                                        Name = com.Name,
                                                        Base = com.Base,
                                                        JobNumber = com.JobNumber,
                                                        Post = com.Post,
                                                    };
            return rodata.ToList();
        }

     
//多表联查 左连接
 public IQueryable<实体> GetSampleMouldDailiesNew()
        {
            var result = from item in _erpData.SampleMouldDaily
                         join main in _erpData.SampleMain
                             on item.MainId equals main.Id into qq
                         from itemmMain in qq.DefaultIfEmpty()
                         where item.Deleted == false
                         && item.ScheduleDate >= new DateTime(2023, 1, 1)
                         select new SampleMouldDailyModel()
                         {
                             Id = item.Id,
                             ProductType = item.MainId == null ? 10 : itemmMain.ProductType,
                             SerialNumber = item.SerialNumber,
                             Saler = item.Saler,
                             ScheduleDate = item.ScheduleDate,
                             Type = item.Type,
                             LineNum = item.LineNum,
                             Customer = item.Customer,
                             PaiXu = item.PaiXu,
                             MainId = item.MainId,
                             MouldingStyleDesc = item.MouldingStyleDesc,
                             IsExistMsd = item.IsExistMSD,
                             Mould = item.Mould,
                             HotStampingFoil = item.HotStampingFoil,
                             IsExistHsf = item.IsExistHSF,
                             Length = item.Length,
                             Number = item.Number,
                             ComplateNumber = item.ComplateNumber,
                             FinishedState = item.FinishedState,
                             ComplateDate = item.ComplateDate,
                             ProcessCredentials = item.ProcessCredentials,
                             MaterialColour = item.MaterialColour,
                             Remark = item.Remark,
                             Deleted = item.Deleted,
                             CreatedBy = item.CreatedBy,
                             CreatedOn = item.CreatedOn,
                             LastUpdateBy = item.LastUpdateBy,
                             LastUpdateOn = item.LastUpdateOn,
                             FinishedLine = item.FinishedLine,
                             MouldNumber = item.MouldNumber,
                             UnfinishedReason = item.UnfinishedReason,
                             LineReamrk = item.LineReamrk,
                             MouldPlace = item.MouldPlace,
                     
                             Image = item.Image == null ? null : item.Image.ToArray(),
                             NcOrgCode = itemmMain.NcOrgCode == null || itemmMain.NcOrgCode == "" ? "C02001" : itemmMain.NcOrgCode,
                         };
            return result;
        }

修改/增加/逻辑删除

//新增 
//new目标表对象,直接赋值 参数为自定义实体类对象赋值
     public void AddHrBasicTables(HRBasicTable newData)
        {
            var ManpowerIndi = new ManpowerIndis()
            {
                Company = newData.Company,
                RecruitingPersonnel = newData.RecruitingPersonnel,
                PositionType = newData.PositionType,
                EntryTime = newData.EntryTime,
                HRUserId = newData.HRUserId,
                Deleted = false,
                Year = DateTime.Now.Year.ToString()
            };
            //插入数据
            _dd.ManpowerIndicators.InsertOnSubmit(ManpowerIndicator);
            //提交
            _dd.SubmitChanges();
        }

//修改 通过sid,制定修改哪一个
        public void SaveDataDetail(int hidSID, DateTime? newDate, string newHrName,string newLevel,string oldLevel)
        {
            var result = (from rd in 表
                          where rd.SID == hidSID
                select rd).FirstOrDefault();
            if (result != null && oldLevel == "P0" && newLevel != oldLevel)
            {
                result.HRName = newHrName;
                result.TripartiteTime = newDate;
                result.Level = newLevel;
                result.ChangeDate = DateTime.Now;
            }
            else
            {
                result.HRName = newHrName;
                result.TripartiteTime = newDate;
                result.Level = newLevel;
            }
            //提交修改
            _dd.SubmitChanges();
        }
//删除 
//与修改类似,直接逻辑删除,将Deleted置为true即可

2.原生sql server写法

1)查询需要定义实体类并赋值

public List<实体类> GetReachData(string year,string month,int? stage,string name)
        {
            var sql = string.Format(@"SELECT 
                                COUNT(*) AS Num,
                              
                                rna.Stage
                            FROM 
		                            PerformanceAchievement  AS rna
                            WHERE 
                                rna.Deleted = 0 
                                AND YEAR(rna.Time) = {0}
                                AND rna.Stage = {1}
                                AND rna.RecruiterName like '%{2}%'", year, stage,name);
            //参数
            if (month != null)
            {
                sql += string.Format(" AND MONTH(rna.Time) = {0}", month);
            }
            //排序
            sql += " GROUP BY \r\n                                rna.Stage";
            //查询
            var result = _Data.ExecuteQuery<实体类>(sql).ToList();
            return result;
        }

2.修改、删除、新增用原生SQL语法

//有参数,加string.Format,没有直接@,注意提交 
var sql = string.Format(@"INSERT INTO ShandongFrameKanban 
                                (WorkShift, Monitor, Line, PlanQuantity, FinishedQuantity, ChangeMouldTimes, ChangeMouldingStyleTimes, ArchieveRate, Yield, DensityRate, SpeedRate,CreateDate)
                                VALUES ('{0}', '{1}','{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}')", 
                                workShift, monitor, lines, planQuantity.ToString(), finishedQuantity.ToString(), changeMouldTimes.ToString(), 
                                changeMouldingStyleTimes.ToString(), archieveRate == null ? string.Empty : $"{(archieveRate * 100):F0}%", yield == null ? string.Empty : $"{((decimal)(yield * 100)):F0}%",
                                $"{densityRate:F0}%", $"{(speedArchieveRate * 100):F0}%",DateTime.Now);
                    _data.ExecuteCommand(sql);
                    _data.SubmitChanges();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值