我们已经完成了订单清单的画面了,接着我们来处理资料库的订单资料。
我们先前在设计的时候将资料库设计成表头和表身两个部分。
那我们今天先来将订单资讯从资料库取回来。
ProprietorModel.cs
Order.cs
Order.cs
里面存放我们的表头与表身public class Order
{
public Menulisth head { get; set; }
public List<Menulistb> bodys { get; set; } = new List<Menulistb>();
}
在ProprietorModel.cs 新增SelectOrder()
的函式
public List<Order> SelectOrder(IConfiguration config)
{
var order_list = new List<Order>();
//连线设定
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
//连线字串
ConnectionString = config.GetValue<string>("WebmenuConnectionString"),
DbType = DbType.SqlServer,//连线类型
IsAutoCloseConnection = true //自动关闭连线
});
try
{
//当执行时,触发事件
db.Aop.OnLogExecuting = (sql, pars) =>
{
Console.WriteLine(sql);//查看SQL语法
};
//begin tran
db.BeginTran();
//取得菜单表头,并排序(正序)
var list_h = db.Queryable<Menulisth>().OrderBy(menu => menu.Createtime, OrderByType.Asc).ToList();
var list_b = db.Queryable<Menulisth, Menulistb>((head, body) => new JoinQueryInfos(JoinType.Left, head.Uid == body.H_uid))
.OrderBy(head => head.Createtime, OrderByType.Asc)
.Select<Menulistb>().ToList();
//将表头加入到表身资料写入
foreach (var head in list_h)
{
var order = new Order();
//加入表头
order.head = head;
//加入表身
foreach(var body in list_b)
{
if(body.H_uid == head.Uid)
{
order.bodys.Add(body);
}
}
order_list.Add(order);
}
db.CommitTran();
}
catch
{
db.RollbackTran();//rollback
throw;
}
return order_list;
}
最後在写到HomeController.cs
测试一下能不能正常接收
public IActionResult Proprietor()
{
var proprietor = ProprietorModel.proprietor;
var list = proprietor.SelectOrder(_config);
foreach(var order in list)
{
Console.WriteLine("Uid:"+order.head.Uid);
Console.WriteLine("FormNum:"+order.head.Formnum);
Console.WriteLine("------------------------");
foreach (var body in order.bodys)
{
Console.WriteLine("Uid:" + body.Uid);
Console.WriteLine("H_Uid:" + body.H_uid);
Console.WriteLine("item:" + body.Item);
Console.WriteLine("==============================");
}
}
return View();
}
6.完成
可以先查看一下资料库语法跟构想的有没有一样,还有输出结果是否正确
有细心跟着做的小夥伴会发现,
其实我们资料库的栏位还少一个状态栏位。
用来判断订单是否完成。
之後我们在需要使用到的时候,除了会顺便加上去这个栏位外,
还会顺便介绍我们这样设计模式的好处在哪。
>>: 【Day 19】- 让 Selenium 去 Dcard 上爬文! (实战 Selenium 模拟使用者划手机 1/2)
一人企业不会倒,顶多自己过不好。 两人企业不会倒,顶多女友跑掉。 三人企业不会倒,顶多大家说好领得少...
今天,我们来聊一下网路世界中的运行方式。 先提前说,这篇跟 HomeLab 其实就没有特别大的关系了...
上一篇, 我们已使用 xgboost 完成训练并且产生model档, 这个model的档名为bst_...
从Swift 到 OC 第二天, 属性 @property 的特性(attribute) tags:...
一日客语:睡觉 客语:睡目 soi55mug2 虽木˙ 介绍: 有字面值:[ ] [ ]里面值称为元...