简单的单表和连表查询操作

本文通过实例介绍在项目中如何进行简单的单表查询和多表联查操作,强调了连表查询时主键ID对应的重要性,并分享了创建VO类封装数据的经验,帮助理解数据库查询与项目需求的关系。

现在是做项目的时候,之前大部分都是跟着老师的视频和代码对着敲去完成老师的作业,做出了效果后就不管了,然后一段时间之后就不知道代码是怎样来的了,而且也不认识大部分的代码意思,现在做项目了,要自己去敲出来,发现了自己很多都不会,但做项目时间也差不多有一个月了,跌跌撞撞地敲打出一些页面和普通的增删查改,项目顺序开始是商品管理,但一开始不太会连表插叙,所以做了个单表查询页面的增删查改,但是这样就有些表的数据没有,经过差不多一个月了,在做供货商的时候,自己想去试试连表查询,之前就试过了,然后就是不出数据,后来就去请教旁边的旁边的同桌,他一开始也搞不清楚原因,还喃喃说没道理啊!然后问我数据库有搞有数据嘛?我说高了,然后他打开了我的数据库,确实有数据,不过他恍然大悟说对我说你都没有给要联的表给对应的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:
在这里插入图片描述

这样就连表查询成功了:
在这里插入图片描述
页面上的数据就有四个表的数据了.我现在搞的项目还有很多需要完善的,比如供货商的多表查询,还有布局没有搞好,项目的需求更是远远没有达到.不说了,要搞事情了…

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值