现在是做项目的时候,之前大部分都是跟着老师的视频和代码对着敲去完成老师的作业,做出了效果后就不管了,然后一段时间之后就不知道代码是怎样来的了,而且也不认识大部分的代码意思,现在做项目了,要自己去敲出来,发现了自己很多都不会,但做项目时间也差不多有一个月了,跌跌撞撞地敲打出一些页面和普通的增删查改,项目顺序开始是商品管理,但一开始不太会连表插叙,所以做了个单表查询页面的增删查改,但是这样就有些表的数据没有,经过差不多一个月了,在做供货商的时候,自己想去试试连表查询,之前就试过了,然后就是不出数据,后来就去请教旁边的旁边的同桌,他一开始也搞不清楚原因,还喃喃说没道理啊!然后问我数据库有搞有数据嘛?我说高了,然后他打开了我的数据库,确实有数据,不过他恍然大悟说对我说你都没有给要联的表给对应的ID编号,然后就上课了,他回去座位了,不过我好像也懂了,然后我在数据库给商品表要联的表给上ID,商品表也设置对应的ID,一顿简单操作连表查询之后,数据能显示出来了.之前老师也提示过,只不过我没有自己去敲打代码,所以没有明白老师要说的是什么,所以代码要自己去多敲打,而不是要一直对着老师的代码敲.接下来便是我要演示的简单的单表插叙和多表插叙的区别.
\ 简单的单表和连表查询操作
一.单表查询:
开始的供货商单表:
public ActionResult SelectMerchadise(LayuiTablePage LayuiTablePage, string searchText)
{
//查询数据库中商品的所有数据信息
List<S_Merchandise> dbMerchandise = (from tbMerchandise in myModel.S_Merchandise
select tbMerchandise).ToList();
}
然后条件筛选 计算条数总条数 分页排序 构建返回页面的数据 返回.最后在数据库中编辑些数据就可以出数据了,这里只是控制器的代码,数据库的数据:

页面上显示的页面数据只是单表(商品表)的所有数据

这样是没有完成项目的需求的.
那么现在的是控制器多表查询的
二.多表查询:
后来的供货商表的多表查询:
public ActionResult SelecctSupplisers(LayuiTablePage layuiTablePage,string searchText)
{
var list = (from tbSu in myModal.S_Suppliers
join tbST in myModal.S_SuppliersTypeg on tbSu.suppliersTypegID equals tbST.suppliersTypegID
join tbSett in myModal.S_SettlementMethod on tbSu.settlementMethodID equals tbSett.settlementMethodID
join tbDis in myModal.D_District on tbSu.disID equals tbDis.disID
select new SuppliersVo
{
suppliersID = tbSu.suppliersID,//供货商ID
suppliersTypegID = tbST.suppliersTypegID,//供货商类型ID
settlementMethodID = tbSett.settlementMethodID,//结算方式ID
disID = tbDis.disID,//地区ID
suppliersName = tbSu.suppliersName,//供货商名称
amountPayable = tbSu.amountPayable,//我方应付金额
defaultSupplier = tbSu.defaultSupplier,//默认供货商
disable = tbSu.disable,//禁用否
InitialCoping = tbSu.InitialCoping,//期初应付
contactAddress = tbSu.contactAddress,//联系地址
remark = tbSu.remark,//备注
contacts = tbSu.contacts,//联系人
telephone = tbSu.telephone,//联系电话
suppliersTypegName = tbST.suppliersTypegName,//供货商类型
settlementMethod = tbSett.settlementMethod,//结算方式
districtName = tbDis.districtName,//所属地区
});
多表查询需要连接主键ID外,还要创建一个VO类来封装所连接其他表的数据并且继承自己(供货商表)
namespace WebApplication.EntityClass
{
public class SuppliersVo:S_Suppliers
{
///
/// 供货商类型
///
public string suppliersTypegName { get; set; }
///
/// 结算方式
///
public string settlementMethod { get; set; }
///
/// 地区
///
public string districtName { get; set; }
}
}
然后就是数据库设置好对应的ID了

供货商表连接的三个表给它们的ID设置好ID ,在它们的表上也设置好和供货商表对应的ID:

这样就连表查询成功了:

页面上的数据就有四个表的数据了.我现在搞的项目还有很多需要完善的,比如供货商的多表查询,还有布局没有搞好,项目的需求更是远远没有达到.不说了,要搞事情了…
本文通过实例介绍在项目中如何进行简单的单表查询和多表联查操作,强调了连表查询时主键ID对应的重要性,并分享了创建VO类封装数据的经验,帮助理解数据库查询与项目需求的关系。

被折叠的 条评论
为什么被折叠?



