前面的书房初始化的前端信息已经完善,所以现在开始实现DB的Script部分。

新增Action:Shelf_Init.sql

svc.sql

 CREATE SCHEMA [svc]
AUTHORIZATION [dbo];

Shelf_Init.sql

 CREATE PROCEDURE [svc].[Shelf$Init](@json nvarchar(max))
WITH ENCRYPTION
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT ON;
BEGIN TRY
BEGIN TRAN; declare @nickName nvarchar(20), @shelfName nvarchar(20);
select @nickName=NickName, @shelfName=ShelfName
from openjson (@json, '$')
with (
NickName nvarchar(20),
ShelfName nvarchar(20)
); insert core._Party(Type, Alias) select k._User, @nickName
from core.Party#Type() k;
declare @userID int=@@identity; insert core._Party(PID, Type, Alias) select @userID, k._Shelf, @shelfName
from core.Party#Type() k; COMMIT TRAN;
END TRY
BEGIN CATCH
if (xact_state() = -1) ROLLBACK TRAN; throw;
END CATCH
END

好了,我去试试前端能不能初始化信息进DB

....

在测试之前,我们需要实现一下Init Razor Pages代码:

Init.cshtml.cs

     using M = Shelf;
public class InitModel : PageModel
{
private readonly IShelfRepo _shelfRepo;
public InitModel(IShelfRepo shelfRepo)
{
_shelfRepo = shelfRepo;
}
[BindProperty]
public InitInputModel Input { get; set; } public void OnGet()
{ } public async Task<IActionResult> OnPostAsync()
{
if (ModelState.IsValid)
{
await _shelfRepo.InitAsync(new M.InitSpec
{
NickName = Input.NickName.Trim(),
ShelfName = Input.ShelfName.Trim()
});
return RedirectToPage("New");
}
return Page();
}
}

页面内容也需要修改一下form部分

Init.cshtml

 <form method="post">
<div class="form-group form-group-lg">
<label asp-for="Input.NickName"></label>
<input class="form-control form-control-lg" asp-for="Input.NickName" autocomplete="off">
<span asp-validation-for="Input.NickName" class="text-danger"></span>
</div>
<div class="form-group form-group-lg">
<label asp-for="Input.ShelfName"></label>
<input class="form-control form-control-lg" asp-for="Input.ShelfName" autocomplete="off">
<span asp-validation-for="Input.ShelfName" class="text-danger"></span>
</div>
<div class="form-group text-right">
<button class="btn btn-warning btn-lg" type="submit">Save</button>
</div>
</form>

填写不动书房的信息:

点击Save按钮提交,OK,正常提交了并跳转了。

查看下DB有没有数据:

哈哈,看来一切正常。

记开发个人图书收藏清单小程序开发(七)DB设计的更多相关文章

  1. 记开发个人图书收藏清单小程序开发(十)DB开发——新增图书信息

    昨晚完成了Web端新增图书信息的功能,现在就差DB的具体实现了. 因为我把Book相关的信息拆分的比较多,所以更新有点小麻烦. 首先,我需要创建一个Book Type的Matter: 然后,将图片路径 ...

  2. 记开发个人图书收藏清单小程序开发(三)DB设计

    主要是参考豆瓣的图书查询接口: https://api.douban.com/v2/book/isbn/:9780132350884 返回内容如下: { "rating": { & ...

  3. 记开发个人图书收藏清单小程序开发(五)Web开发

    决定先开发Web端试试. 新增Web应用: 选择ASP.NET Core Web Application,填写好Name和Location,然后点击OK. 注意红框标出来的,基于.NET Core 2 ...

  4. 记开发个人图书收藏清单小程序开发(九)Web开发——新增图书信息

    书房信息初始化已完成,现在开始处理图书信息新增功能. 主要是实现之前New Razor Pages的后台部分. 新增需要保存的Model:Book.InitSpec.cs /Models/Book.I ...

  5. 记开发个人图书收藏清单小程序开发(六)Web开发

    Web页面开发暂时是没有问题了,现在开始接上Ptager.BL的DB部分. 首先需要初始化用户和书房信息.因为还没有给其他多余的设计,所以暂时只有个人昵称和书房名称. 添加 Init Razor Pa ...

  6. 记开发个人图书收藏清单小程序开发(四)DB设计

    早上起来,又改动了一下: 主要是,将非常用信息全部拆分出来,让Table尽量的小,小到不能继续拆分了,这样区分DB逻辑.增加了FileBank存储Book的封面图片,统一管理图片资源. 新添加的Typ ...

  7. 记一次基于 mpvue 的小程序开发及上线实战

    小程序名称:一起打车吧 项目地址: 客户端:https://github.com/jrainlau/taxi-together-client 服务端:https://github.com/jrainl ...

  8. 微信小程序开发系列(一)小程序开发初体验

    开发小程序所需的基本技能   关于小程序的介绍和使用场景这里不作介绍,这个系列的文章会一步一步地带领大家快速地学习和掌握小程序的开发. 关于还没有接触过小程序的开发者来说,最关心的问题无非就是,开发小 ...

  9. [转]微信小程序开发系列(一)小程序开发初体验

    本文转自:http://www.cnblogs.com/rennix/p/6287432.html 开发小程序所需的基本技能   关于小程序的介绍和使用场景这里不作介绍,这个系列的文章会一步一步地带领 ...

随机推荐

  1. wp 去除google字体加载

    add_filter('gettext_with_context', 'disable_open_sans', 888, 4 ); function disable_open_sans( $trans ...

  2. elasticsearch(二) 之 elasticsearch安装

    目录 elasticsearch 安装与配置 安装java 安装elastcsearch 二进制安装(tar包) 在进入生产之前我们必须要考虑到以下设置 增大打开文件句柄数量 禁用虚拟内存 合适配置的 ...

  3. CentOS6.5安装php7+nginx+mysql实现安装WordPress

    安装php7+nginx参考该博客http://blog.csdn.net/whatday/article/details/50645117 安装php7参考http://blog.csdn.net/ ...

  4. PTA (Advanced Level) 1021 Deepest Root

    Deepest Root A graph which is connected and acyclic can be considered a tree. The hight of the tree ...

  5. Hadoop+Hive 操作mongodb数据

    Hadoop+Hive 操作mongodb数据 1.版本概述 hadoop-2.7.3.hive-2.2 下载响应的jar包:http://mvnrepository.com/,直接搜索想要的jar包 ...

  6. [九省联考 2018]IIIDX

    Description 题库链接 给你 \(n+1\) 个节点的一棵树,节点编号为 \(0\sim n\) , \(0\) 为根.边集为 \(\mathbb{E}=\left\{(u,v)\big|\ ...

  7. 使用DateTime的ParseExact方法实现特殊日期时间的方法详解(转)

    本篇文章是对使用DateTime的ParseExact方法实现特殊日期时间的方法进行了详细的分析介绍,需要的朋友参考下 今天遇到一个特别的需求,需要从下面的字符串中转换成一个DateTime对象: [ ...

  8. springboot之约定大约配置

    前言 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样 ...

  9. unity 中的协程

    //The coroutine will continue after all Update functionshave been calledon the next frame. ; //Conti ...

  10. web前端开发教程系列-4 - 前端开发职业规划

    前言 关于我:小天 1). 架构师,项目经理,产品经理 2). 中间件研发 3). VPCC 云计算基础平台管理 4). 智慧旅游 5). 智慧教育 6). 一次失败的创业体验(爱邂逅网) 一. 在开 ...