字符串拼接

在我们浏览网页的时候我们看到网页上的表格的时候在一格里面显示了两条以上的数据,而且每条结束的时候都会用一个符号来隔开
在这里插入图片描述
实现这样显示是我们在C#代码中把获取到数据库中的数据然后进行了字符串拼接,在每条数据后面都添加上了一个“,”当每一条的数据结尾添加后在页面上输出的数据就是上图的样子了。
如果我们不使用字符串拼接得出来会有很多重复的数据,属性那一列有多少数据在页面上就重复多少次
在这里插入图片描述
而当我们使用了字符串拼接在页面上就会只显示一条,因为我们在C#代码那边进行了foreach循环,循环商品的属性,如果商品ID相同则一直循环下去直到商品ID不一样为止
在这里插入图片描述
首先我们声明一个变量,这个变量在foreach后进行字段添加,在第一个foreach里面声明一个ValueName的变量,让它在每一次循环完第二个foreach后循环一遍,让它里面存的数据清空一遍在进行第二次循环,第二个foreach则是循环属性里面的属性值,里面的if循环是判断商品里的商品ID和属性里的商品ID是否是同一个,如果为同一个则一直循环直到ID不一样为止,当所有的循环都完毕后ValueName这个变量里面已经有了我们想要得到的数据,因为我们使用了“,”来隔开每条数据,所以在添加数据的时候我们需要使用Substring来检索字符串,检索第一个字符串然后给它去掉,我们最后得到的结果就是
在这里插入图片描述
最后一步我们则将这条数据添加到商品里面显示属性那一列,实现这个字符串拼接所使用的了C#代码如下

List<CommodityInfor> listCommodity = (from tbCommodity in myModel.D_Commodity
	join tbUnit in myModel.D_Unit on tbCommodity.UnitID equals tbUnit.UnitID
	join tbStockPrice in myModel.D_StockPrice on tbCommodity.StockPriceID equals tbStockPrice.StockPriceID
	join tbClassification in myModel.D_Classification on tbCommodity.ClassificationID equals tbClassification.ClassificationID
			select new CommodityInfor
			{
				ClassificationID = tbClassification.ClassificationID,
				CommodityID = tbCommodity.CommodityID,
				CommodityName = tbCommodity.CommodityName,
				UnitName = tbUnit.UnitName,
				StockPrice = tbStockPrice.StockPrice
			}).ToList();
List<CommodityInfor> listAttr = (from tbAttrValue in myModel.D_AttrValue
	join tbAttr in myModel.D_Attr on tbAttrValue.AttrID equals tbAttr.AttrID
	join tbCommodityAttrDetail in myModel.R_CommodityAttrDetail on tbAttrValue.AttrValueID equals tbCommodityAttrDetail.AttrValueID
			 select new CommodityInfor
			{
				 CommodityID = tbCommodityAttrDetail.CommodityID,
				AttrDetailID = tbCommodityAttrDetail.AttrDetailID,
				 AttrName = tbAttr.AttrName,
				 AttrValueName = tbAttrValue.AttrValueName
			 }).ToList();

List<CommodityInfor> List = new List<CommodityInfor>();
	foreach (var Commodity in listCommodity)
			{
				var ValueName = "";
				foreach (var Attr in listAttr)
				{
					if (Commodity.CommodityID == Attr.CommodityID)
					{
						ValueName += ("," + Attr.AttrValueName);
					}
				}
				Commodity.AttrValueName = ValueName.Substring(1);
				List.Add(Commodity);
			}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值