这个方法的思路是将Models的数据表作为参数,在数据不存在异常的情况下,检查数据是否完整,该数据是否存在重复,如果没有执行则新增,新增是否保存成功。将结果返回视图。
第一步声明一个控制器功能,将Models的数据表作为参数并命名,,自定义一个能够读取与输入的状态类,因为只有一条数据的结果是正确的所以将它的状态设为false,它能够输出文本给视图。该控制器功能可以将控制器的结果返回到视图,例如:
设数据表为SYS_one,参数为sysOne,状态类为ReturnJsonVo、命名为returnJson;
public ActionResult InsertSpecialty(SYS_one sysOne)
{
ReturnJsonVo returnJson = new ReturnJsonVo();
returnJson.State = false;
return Json(returnJson, JsonRequestBehavior.AllowGet)
}
第二步利用try…catch操作看视图传来的数据是否存在异常,再用if…else语句与取反“IsNullOrEmpty”检查数据是否存在Null和“”以求数据完整。如果存在异常或数据不完整则返回相关控制器结果到视图例如:
设数据表SYS_one内存在OneName OneCode、OneID三类数据;状态类ReturnJsonVo有功能文本Text
Try
{
if(!string.IsNullOrEmpty(sysOne. OneName) && !string.IsNullOrEmpty(sysOnel. OneCode) && sysOne.OneID!=null && sysOne.OneID>0)
{
}
else
{
returnJson.Text= "参数不完整";
}
}
catch (Exception e)
{
Console.Write(e);
returnJson.Text = "参数异常";
}
第三步声明一个变量放入传入的数据,利用查询数据行数的方法将检查该数据在数据库是否已经存在相同的数据,将结果返回视图。
int oldCount = (from tbOne in myModel.SYS_One
where tbOne.OneID == sysOne.OneID
&& (tbOnelty.OneName== sysOne.OneName.Trim() || tbOne.OneCode == sysOne.OneCode.Trim())//Trim()当前字符串的开头和结尾删除所有空白字符后剩余的字符串。
rderby tbOne.OneID
select tbOne).Count();
if (oldCount==0)
{
}
else
{
returnJson.Text = "该数据库已存在相同的数据";
}
第四步以上判断全部成立就可以开始执行新增,使用“Add”在数据库添加新的数据,它通过“SaveChanges()”是否大于0(SaveChanges()这个是什么我不太清楚,应该是除数据库本身数据增加数据行数)能够判断是否保存成功,如果成功将状态类的状态改为“true”将结果返回视图。例如:
myModel.SYS_One.Add(sysSpecialty);
if(myModel.SaveChanges() > 0)
{
returnJson.State = true;
returnJson.Text = "保存成功";
}
else
{
returnJson.Text = "保存失败";
}