前面的书房初始化的前端信息已经完善,所以现在开始实现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. Windows里如何正确安装Zookeeper以服务运行(博主推荐)(图文详解)

    不多说,直接上干货! 为什么要在Win下来安装Zookeeper呢? 其实玩过大数据的人很清楚,在Linux下我更不说了.在win下,如Disconf .Dubbo等应用. 所以,它的应用是非常广的. ...

  2. [转] Ubuntu 14.04/14.10下安装VMware Workstation 11图文教程

    点击这里查看原文 译者:GuiltyMan 本文由 Linux公社翻译组 原创翻译  Linux公社 诚意奉献 更多请访问此处博客网站 VMware workstation 是一个可以进行桌面操作的虚 ...

  3. CSS3设置Table奇数行和偶数行样式

    table:.myTable tr:nth-child(even){ //偶数行 background:#fff;}.myTable tr:nth-child(odd){ //奇数行 backgrou ...

  4. 原生JavaScript 导出excel表格(兼容ie和其他主流浏览器)

    因同事的需求是想前端导出excel表格,网上找了一些demo,自己修改了一下,可能以后会用到,记录下来吧,兼容ie和一些主流浏览器,ie可能会报错,原因参考 这里,edge 浏览器还没有办法导出,正在 ...

  5. tcpdump一个命令的剖析

    简单介绍:用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据 ...

  6. GetHashCode方法学习

    GetHashCode方法我的理解是做两个对象的比较,每个对象,不管是值类型还是应用类型都提供这个基本函数,都可以去重写它.GetHashTable通常用于HashTable.List<> ...

  7. FOR XML PATH做为数据表中单列或者多列的字符串拼接的方法,放到一列中去,很好用。

    先看看自己弄得例子,SELECT sName+',',hoppy+','  FROM student2 where hoppy='游泳' FOR XML PATH('')--PATH后面跟的是行标题, ...

  8. swagger 集成asp.net Core2.1

    首先通过nuget 安装   Swashbuckle.AspNetCore 1.在startup.cs 的configureService services.AddAutoMapper(); serv ...

  9. XCode 添加自定义framework运行时出现dyld: Library not loaded的解决方法

    XCode添加自定义framework运行时出现dyld: Library not loaded的解决方法 在使用自定义的framework运行时,会出现如下的错误: dyld: Library no ...

  10. 前端模块化(AMD和CMD、CommonJs)

    知识点1:AMD/CMD/CommonJs是JS模块化开发的标准,目前对应的实现是RequireJs/SeaJs/nodeJs. 知识点2:CommonJs主要针对服务端,AMD/CMD主要针对浏览器 ...