关于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();
        }

修改/增加/逻辑删除

//新增 
//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、付费专栏及课程。

余额充值