如何用for循环出数据库的数据

开发工具与关键技术:Visual Studio、MVC
作者:幻奏
撰写时间:2019.5.30

在客房管理的系统中有很多不同的小格子,它们分别代表了不同的房间,可以动态的显示每间房间的状态,这个就是房态图。有很多系统应该都有类似房态图的东西吧。
大概就是这个样子的。
在这里插入图片描述
它就是根据数据库有多少房间就新增多少个格子,根据不同的房间状态,显示不同的颜色。好了,接下来就和你们讲一下我是如何写的,如果你有更好的方法,请告诉我。
我们要显示房态图当然要用linq查询出它的数据才可以啊。
所以我们的第一步就是查询出它的数据。

public ActionResult selectRoomState()
        {
            var linqRoom = (from tbRoom in myModel.PW_Room
                            join tbRoomState in myModel.S_RoomState on tbRoom.RoomStateID equals tbRoomState.RoomStateID
                            join tbRoomType in myModel.S_RoomType on tbRoom.RoomTypeID equals tbRoomType.RoomTypeID
                            select new
                            {
                                RoomStateID =tbRoomState.RoomStateID,
                                RoomNumber = tbRoom.RoomNumber,
                                ForShort = tbRoomType.ForShort,
                                RoomState = tbRoomState.RoomState,
                                Reserve=tbRoom.Reserve
                            }).ToList();
            return Json(new { linqRoom }, JsonRequestBehavior.AllowGet);
        }

我这里连了三张表,有房间类型的,有房间状态的,当然最主要的肯定是房间表啦,然后返回数据。
第二步就是for循环啦
因为我不单单要加载出和数据库一样的格子,还要根据不同的房间状态显示不同的颜色,所以我就要加上很多的判断才可以。循环加载出的格子嘛,当然是自己写的样式啦,我把不同的状态都写了一个类,用不同的颜色代表,还有客人预定的也是,我给它加了一个箭头,这样就差不多了。
首先我们写一个post请求控制器那里的方法,然后就是for循环,然后和linq查询出来的数量不一样就继续新增。

$(function () {
            $.post("/ShiShiFangTai/FangTai/selectRoomState", function (date) {
                for (var i = 0; i < date.linqRoom.length; i++) {
                    if (date.linqRoom[i].RoomStateID == 1) {
                        if (date.linqRoom[i].Reserve == true) {
                            $("#xiaogz").append("<div class='greenGZ p-3'><p>" + date.linqRoom[i].RoomNumber + "</p><p>" + date.linqRoom[i].ForShort + "</p><span class='YDF'></span></div>")
                        } else {
                            $("#xiaogz").append("<div class='greenGZ p-3'><p>" + date.linqRoom[i].RoomNumber + "</p><p>" + date.linqRoom[i].ForShort + "</p></div>")
                        }
                    } else {
                        if (date.linqRoom[i].RoomStateID == 2) {
                            $("#xiaogz").append("<div class='blueGZ p-3'><p>" + date.linqRoom[i].RoomNumber + "</p><p>" + date.linqRoom[i].ForShort + "</p></div>")
                        } else {
                            if (date.linqRoom[i].RoomStateID == 3) {
                                $("#xiaogz").append("<div class='purpleGZ p-3'><p>" + date.linqRoom[i].RoomNumber + "</p><p>" + date.linqRoom[i].ForShort + "</p></div>")
                            } else {
                                $("#xiaogz").append("<div class='grayGZ p-3'><p>" + date.linqRoom[i].RoomNumber + "</p><p>" + date.linqRoom[i].ForShort + "</p></div>")
                            }
                        }
                    }
                }
            });
        });

记得在HTML的div加上ID。因为是新增在那个div里面。
这样就可以一个一个的新增那些小格子了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Spark循环数据添加到数据库时,需要采取以下步骤: 1. 导入相关的依赖包和类:首先,在Spark应用程序中导入与数据库连接和操作相关的依赖包,例如JDBC驱动程序。 2. 创建数据库连接:使用数据库连接器(例如JDBC)创建与目标数据库的连接。在连接参数中提供数据库的URL、用户名和密码等信息。 3. 创建RDD:使用Spark的API(例如DataFrame或RDD)创建包含需要添加到数据库数据集。 4. 使用foreachPartition函数:将创建的RDD应用foreachPartition函数进行处理。此函数可将数据集分成多个分区,并在每个分区上执行针对数据库的添加操作。 5. 在分区内添加数据:在foreachPartition函数中,使用数据库连接在每个分区上循环遍历数据,并将数据插入到数据库中。对于每次循环,可以执行插入语句或使用批量插入操作,以提高效率。 6. 关闭数据库连接:在所有数据插入完成后,需要关闭数据库连接以释放资源。 在实现这些步骤时,需要注意以下事项: - 确保数据库连接的正确性:提供准确的数据库URL、用户名和密码,以确保能够成功连接到目标数据库。 - 避免频繁开启和关闭连接:将创建和关闭数据库连接的操作放在外部循环之外,以避免频繁地开启和关闭连接,从而提高性能。 - 考虑数据并行性:使用foreachPartition函数而不是foreach函数,以便能够在多个分区上并行处理数据。 - 错误处理和容错机制:在添加数据的过程中,需要考虑错误处理和容错机制,例如处理插入失败或数据格式有问题的情况。 总之,利用Spark的foreachPartition函数和数据库连接器,可以循环数据添加到数据库中。但是,在实现过程中需注意谨慎处理数据库连接、数据并行性、错误处理和容错机制等问题,以确保添加数据的正确性和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值