图书信息管理——“查询数据”源码

将数据库中的表单信息返回到页面上显示出来,查询数据库表单信息通过控制器查询,再将数据返回到MVC视图。
在这里插入图片描述

数据库创建表单信息

就是在数据库中创建一个表单信息,在到vs中去调用数据库里的数据。
在里面教程中尽量跟我的命名一样,这样可以防止在vs代码中调用不会出现数据库名称错误。已经创建了表单信息可以不用看(注意设置主键ID以及给主键ID设置标识规范)
https://blog.csdn.net/TBDBTUO/article/details/119331879

VS新建web项目

这里我用的是VS2015,在新建项中C#语言下web,ASP.NET Web应用程序(有些同学可能没有应该是没有下载该拓展)。
在这里插入图片描述
新建后会弹出一下图片的模态框体,模板选择MVC,为一下项添加文件夹和核心引用哪里一样选择MVC.
在这里插入图片描述
有些同学可能会弹出下面这个模态窗体没有登陆账号,可以直接取消跳过。最后创建好了。
在这里插入图片描述

web项连接数据库

首先要连接MOdels也就是数据库,连接完后通过控制器获取连接到的数据库中的数据,接着返回到视图页面的表格,接着就是显示出来。
https://blog.csdn.net/TBDBTUO/article/details/116518489

控制器代码

以下是查询数据库表单信息功能的控制器代码。

using BMS_MVC.EntityClass;
using BMS_MVC.Models;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Mvc;

namespace BMS_MVC.Areas.BooksManagement.Controllers
{
    public class LibraryInformationController : Controller
    {
        // GET: BooksManagement/LibraryInformation
        // 图书管理/图书馆信息

        //实例化实体模型
        BMS_MVCEntities1 myModel = new BMS_MVCEntities1();
		
        /// <summary>
        /// 图书馆信息页面
        /// </summary>
        /// <returns></returns>      
        public ActionResult Index()
        {
            return View();
        }
        /// <summary>
        /// 1.0 查询图书馆信息
        /// </summary>
        /// <returns></returns>
        public ActionResult SelectUser(LayuiTablePage layuiTablePage, string libraryName, string telephone, string address)
        {
            var query = (from tbLibrary in myModel.S_library select tbLibrary);

            //数据的总条数
            int count = query.Count();

            List<S_library> listUser = query
                .OrderBy(m => m.libraryId)
                .Skip(layuiTablePage.GetStartIndex())
                .Take(layuiTablePage.limit)
                .ToList();

            LayuiTableData<S_library> layuiTableData = new LayuiTableData<S_library>();
            layuiTableData.count = count;
            layuiTableData.data = listUser;
            //返回数据
            return Json(layuiTableData, JsonRequestBehavior.AllowGet);
        }

BMS_MVCEntities1 myModel = new BMS_MVCEntities1();
这条代码实例化数据模型,myModel是自己设置的一个变量,方便下面代码要获取数据库信息是可以通过变量myModel来获取。数据库连接 BMS_MVCEntities1这是我的数据库名称需要改成你的,可以在解决方案资源管理器中——>Models文件夹下一路点开最后一个就是。
在这里插入图片描述

var query = (from tbLibrary in myModel.S_library select tbLibrary);
这是一条Layui查询语句,创建tbLibrary变量到myModel(实体数据模型)中查询S_library数据库表单全部数据。
可以加几条查询判断,比如下面这行代码查询到libraryName(图书馆名称)数据判断是否不等于0,IsNullOrEmpty 表示空字符串,如果是则输出已查询到的此条数据,否就表示没有此条数据页面显示无数据。
if (!string.IsNullOrEmpty(libraryName))
{
query = query.Where(m => m.libraryName.Contains(libraryName));
}
在这里插入图片描述

创建listuer用来接收表单数据,Skip()跳过序列中指定数量的元素,然后返回剩余的元素,比如有15条数据一页显示10条数据,跳过前面的数据从最后面开始显示十条数据。Take()从序列的开头返回指定数量的连续元素。
在这里插入图片描述

下面行代码获取总共有多少条数据,及查询到数据库的表单信息。用LayuiTableData的类来统一接收这些信息,再用return Json(layuiTableData, JsonRequestBehavior.AllowGet);返回到到页面上。

MVC视图代码

首先新建一个MVC的视图在以下代码中右键——>添加视图。

public ActionResult Index()
        {
            return View();
        }

MVC下选择视图,MVC 5视图点击添加。
在这里插入图片描述
弹出此添加视图模态窗,使用布局页是默认勾引选的,把勾去掉然后添加。
在这里插入图片描述

这里面的表格我用到的是layui框架,这个需要自行导入。
下面MVC视图代码

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    
    <link href="~/Plugins/layui/css/layui.css" rel="stylesheet" />
    <!--封装样式表-->
    <link href="~/Content/css/User.css" rel="stylesheet" />
</head>
<body>

     <div class="col-12">
          <table id="tabUser" class="layui-hide" layui-filter="tabUser"></table>
     </div>
	//里面elem中是一个ID,这个的作用相当于把这个表格给放到上面HTML里面,绑定容器,是存放并显示该数据表格。
    <script src="~/Plugins/jquery-3.2.1.min.js"></script>
   	<script src="~/Plugins/layui/layui.all.js"></script>
    <!--自定义JS-->
    <script src="~/Content/js/customfunction.js"></script>
    <script>
        var tabUser, layer, layuiTable, laydate;
        //1、==============页面加载==============
        $(document).ready(function () {
            layui.use(['layer', 'table', 'laydate'], function () {
                layer = layui.layer;
                layuiTable = layui.table;
                laydate = layui.laydate;

                laydate.render({
                    elem: '#foundTime',
                    type: "date",
                    range: true,
                    trigger: 'click'//解决Laydate绑定input元素一闪而过的问题
                });
                //渲染表格
                tabUser = layuiTable.render({
                    elem: "#tabUser",//table的ID HTML元素的ID
                    data: [],//多条件查询,先初始化空数据
                    cols: [[
                        { title: '序号', type: 'numbers' },//numbers 序号列,title设定标题名称,width: 160 指定宽度,align 指定对其方式
                        { title: '图书馆名称', field: 'libraryName', width: 250, align: 'center' },
                        { title: '联系电话', field: 'telephone', width: 150, align: 'center' },
                        { title: '住址', field: 'address', width: 250, align: 'center' },
                        { title: '操作', templet: setOperate, align: 'center' }
                    ]],
                    page: {
                        limit: 10, //指定每页显示的条数
                        limits: [5, 10, 15, 20, 25, 30, 35, 40, 45, 50], //每页条数的选择项
                    }, //开启分页

                });
                //调用查询方法
                tabUserSearch();
            });
        });
        function tabUserSearch() {
            //获取页面输入数据
            //图书馆名称
            var libraryName = $("#libraryName").val();
            if (libraryName == undefined) {
                libraryName = "";
            }
            //联系电话
            var telephone = $("#telephone").val();
            if (telephone == undefined) {
                telephone = "";
            }
            //地址
            var address = $("#address").val();
            if (address == undefined) {
                address = "";
            }
            //表格重载
            tabUser.reload({
                url: '/LibraryInformation/SelectUser',
                //这里需要改成你的控制其中的引用类
                where: {
                    libraryName: libraryName,
                    telephone: telephone,
                    address: address,
                },
                page: {
                    curr: 1//重新从第一页开始
                }
            });
        }

这几行代码会得到一个基础表格里面有五列数据分别是:序号、图书馆名称、联系电话、住址、操作,右边width:px表示这一列数据显示的宽度可以自行调节,下面有两行代码指定显示每页的代码数量,以及下面自己可选的想要一页代码显示几行的选择项。
在这里插入图片描述


版权声明:本文为TBDBTUO原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。