数据新增

    在我们编程中数据是不会一点都没有变动,这是不可能的,因为数据时刻都在变动有数据的新增、修改、和删除。

下面我们来看一下新增数据的代码。

我们在做数据的新增时,不可以毫无顺序的新增。因为新增有一点的规律的。

例如新增教师数据。

我们要新增的表有四张:用户表PW_User、教师表PW_Teacher、用户类型明细表PW_UserRoleDetail、教师明细表PW_TeacherDetail

 

判断新增的先后顺序条件:谁做了谁的外键就先新增谁。

由上图所得,PW_User中的UserID分别在PW_Teacher和PW_UserRoleDetail中做了外键,而PW_Teacher中的TeacherID在PW_TeacherDetail中做了外界,所有可以得出。

 

新增的顺序:PW_User          PW_Teacher或PW_UserRoleDetail(这两张表没有先后顺序)          PW_TeacherDetail

 

我们新增数据,是要每一条数据都进行一个新增,不能留空。

所有我们要清楚数据的来源。

还有我们新增的代码不能重复,所有每次新增的时候都要进行数据的查重,如果数据重复就不把数据保存到数据库,否则就执行保存

       下面我们来看代码:

 public ActionResult InsertTeacher(PW_Teacher pwTeacher,PW_User pwUser, HttpPostedFileBase fileTeacherImage)

        {

            ReturnJson returnJson = new ReturnJson();

            try

            {

                //判断新增老师是否已经在校任教,没有就新增

                //查询的条件是:教师身份证号码和教师名称

                var listTeacher = (from tbTeacher in myModels.PW_Teacher

                                   where tbTeacher.TeacherName == pwTeacher.TeacherName ||

                                   tbTeacher.TeacherIDNum == pwTeacher.TeacherIDNum

                                   select tbTeacher).Count();

                if (listTeacher==0)

                {

                    //判断该账号是否已经有人使用

                    //查询的条件是教师的编号,因为该教师编号就是该教师的账号

                    var userCount = (from tbUser in myModels.PW_User

                                     where tbUser.UserNuber == pwTeacher.TeacherNumber

                                     select tbUser).Count();

                    if (userCount==0) {

                        //新增第一张表:用户表

                        //教师账号和教师编号一致

                        pwUser.UserNuber = pwTeacher.TeacherNumber;//账号

                        pwUser.Password = Common.AESEncryptHelper.Encrypt(pwTeacher.TeacherNumber);//密码

                        pwUser.ToVoidNo = true;//账号是否启用:默认为true

                        myModels.PW_User.Add(pwUser);//保存数据

                        if (myModels.SaveChanges()>0)//判断是否保存成功

                        {

                            var userId = pwUser.UserID;

                            //二、新增教师表

                            byte[] imgFile = null;

                            if (fileTeacherImage != null && fileTeacherImage.ContentLength>0)

                            {

                                //初始化数组的长度,为节省空间,长度由实际上传的图片的长度决定

                                imgFile = new byte[fileTeacherImage.ContentLength];

                                //读取该图片文件

                                //将图片转为流结束位置

                                //将流读取为byte[],参数:byte[],读取开始位置,读取字节数

                                fileTeacherImage.InputStream.Read(imgFile, 0, fileTeacherImage.ContentLength);

                            }

                            pwTeacher.UserID = userId;//用户ID

                            pwTeacher.TeacherPicture = imgFile;//教师图片

                            myModels.PW_Teacher.Add(pwTeacher);

                            myModels.SaveChanges();

 

                            //三、新增用户角色明细表

                            PW_UserRoleDetail pwUserRoleDetail = new PW_UserRoleDetail();

                            pwUserRoleDetail.UserID = userId;

                            pwUserRoleDetail.UserTypeID = 4;

                            myModels.PW_UserRoleDetail.Add(pwUserRoleDetail);

                            myModels.SaveChanges();

 

                            //四、新增教师明细表

                            PW_TeacherDetail pwTeacherDetail = new PW_TeacherDetail();

                            pwTeacherDetail.AcademeID = Convert.ToInt32(pwTeacher.AcademeID);

                            pwTeacherDetail.UserTypeID = 4;

                            pwTeacherDetail.TeacherID = pwTeacher.TeacherID;

                            myModels.PW_TeacherDetail.Add(pwTeacherDetail);

                            myModels.SaveChanges();

                           

                            returnJson.State = true;

                            returnJson.Text = "保存教师信息成功!";

                        }

                    }

                    else

                    {

                        returnJson.State = false;

                        returnJson.Text = "该账号或统一认证码已经存在!";

                    }

                }

                else

                {

                    returnJson.State = false;

                    returnJson.Text = "该教师信息已经存在,不需要重复输入数据!";

                }

            }

            catch (Exception e)

            {

                Console.WriteLine(e);

                returnJson.State = false;

                returnJson.Text = "数据异常!";

            }

            return Json(returnJson, JsonRequestBehavior.AllowGet);

        }

代码是有的多单思路不难。

通过上面的代码我们就可以新增教师的数据了。

上面是我对数据新增的一些总结,有上面不对的请指出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值