新增数据的简单方法
开发工具与关键技术:
作者:熊琪
撰写时间:2019.06.05
数据的新增对于程序员来说是最基本的操作。数据新增无非就是将数据新增到数据库表当中,集体新增什么数据要看具体操作,比如普通的字符串字段可不转化直接添加即可,但有些就必须转化,比如图片,图片在数据库中存放类型一般为image,但要将页面的图片传到数据库当中就还得将图片转化,第一由数组来接收图片,将图片转化为流的形式。代码图如下:
fileCommodityImage为接收图片的参数,ContentLength是在派生类中重写时,获取上载文件的大小(是以字节为单位的)返回的结果时文件的长度。
新增要注意的是数据的类型转化,基本步骤一般是从页面的新增输入框中获取数据,获取完数据后一般都要判断一下必填项不能为空;获取数据代码:
var CommodityStyleNumber = $("input[name='CommodityStyleNumber']").val();//商品编码
var CommodityName = $("input[name='CommodityName']").val();//商品名称
var CommodityTypeID = $("#Commoditytype").val();//商品类型
var BrandID = $("#BrandId").val();//品牌ID
var SeasonID = $("#SeasonID").val();//季节ID
var UnitID = $("#UnitID").val();//单位ID
var SupplierID = $("#SupplierID").val();//供应商ID
var TagPrice = $("input[name='TagPrice']").val();//吊牌价
var Discount = $("input[name='Discount']").val();//折扣
var ColorID = $(".ColorID").val();//颜色ID
var SizeID = $(".SizeID").val();//尺码ID
var CommodityCode = $("inpt[name='CommodityCode']").val();//商品款号
var Maximum = $("inpt[name='Maximum']").val();//上限
var Minimum = $("inpt[name='Minimum']").val();//下限
var CommodityPicture = $("#fileImage").get(0).files[0];//获取服装img
一般在获取数据时要注意的点就是id千万不能重复,如果时相同的数据由多条的话可以用name,或者class类名来获取到,声明的接收参数要于控制器中的所查出来的对应的字段相对应。
判断数据重复很简单就是判断不为空,或者对应的数据要大于0,否则弹出提示,提示用户将数据填写完整,代码:
if (CommodityStyleNumber != "" && CommodityName != "" && CommodityTypeID > 0 && BrandID > 0 && SeasonID > 0 && UnitID > 0 && SupplierID > 0) {
var layerIndex = layer.load(0);
$("#frmComInfor").ajaxSubmit(function (returnJson) {
//关闭加载层
layer.close(layerIndex);
if (returnJson.State == true) {
//关闭模态框
$("#modCommodity").modal("hide");
//刷新table
TbCommoditylist = layuiTable.reload('TbCommoditylist')
}
layer.alert(returnJson.Text, { icon: 0, title: '提示' });
});
}
else {
layer.alert('请填写完整信息', { icon: 0, title: '提示' });
}
一般操作到了这个步骤的话,新增操作基本就完成了,但在这之前还有一步就是将获取的数据于数据库的数据做对比是否重复,判断完后页面的数据于数据库字段相等,然后添加需要添加的表,这里要注意的一点就是,比如页面上表中显示的数据涉及到三个表的连接,那么你想要刷新页面表格就必须把三个表的数据对应的都添加,如果少了一张表那么页刷新表格数据是刷新不出来的。
其中表的添加代码:
byte[] imgFile = null;
if(fileCommodityImage != null && fileCommodityImage.ContentLength > 0)
{
imgFile = new byte[fileCommodityImage.ContentLength];
//读取文件,将图片转化为流结束位置
fileCommodityImage.InputStream.Read(imgFile, 0, fileCommodityImage.ContentLength);
}
bCommodity.CommodityStyleNumber = CommodityStyleNumber;//商品款号
bCommodity.CommodityName = CommodityName;//商品名称
bCommodity.BrandID = BrandID;//品牌ID
bCommodity.SeasonID = SeasonID;//季节ID
bCommodity.UnitID = UnitID;//单位ID
bCommodity.SupplierID = SupplierID;//供应商
bCommodity.TagPrice = TagPrice;//吊牌价
bCommodity.Discount = Discount;//销售折扣
bCommodity.CommodityPicture = imgFile;//图片
myModels.B_Commodity.Add(bCommodity);//添加
如果有与添加的表相连接的表也要添加的话首先是看该表中的某些字段是否允许重复,比如商品信息中的商品编码,在商品明细表中是不允许重复的,明细表通过商品ID于商品表连接所以添加明细表之前要通过两接收的参数表中的commodityId相等而连接
var commodityID = bCommodity.CommodityID;
dCommodityDetail.CommodityID = commodityID;
这两句的代码就是dCommodityID,的ID与bCommodity中的CommdityID相等,所以两表相连,添加完之后有一个注意的部分,如图:
上图中需要显示的字段中库存数还未添加数据,其他的都添加了,在我写上述的添加数据代码时漏了其中的库存表这个字段所以你会发现在添加成功数据后页面表格刷新就刷新不了,页面也不会报任何错误,要注意的就会是把该添加的字段都添加好就不会出此错误啦!