记开发个人图书收藏清单小程序开发(七)DB设计
前面的书房初始化的前端信息已经完善,所以现在开始实现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设计的更多相关文章
- 记开发个人图书收藏清单小程序开发(十)DB开发——新增图书信息
昨晚完成了Web端新增图书信息的功能,现在就差DB的具体实现了. 因为我把Book相关的信息拆分的比较多,所以更新有点小麻烦. 首先,我需要创建一个Book Type的Matter: 然后,将图片路径 ...
- 记开发个人图书收藏清单小程序开发(三)DB设计
主要是参考豆瓣的图书查询接口: https://api.douban.com/v2/book/isbn/:9780132350884 返回内容如下: { "rating": { & ...
- 记开发个人图书收藏清单小程序开发(五)Web开发
决定先开发Web端试试. 新增Web应用: 选择ASP.NET Core Web Application,填写好Name和Location,然后点击OK. 注意红框标出来的,基于.NET Core 2 ...
- 记开发个人图书收藏清单小程序开发(九)Web开发——新增图书信息
书房信息初始化已完成,现在开始处理图书信息新增功能. 主要是实现之前New Razor Pages的后台部分. 新增需要保存的Model:Book.InitSpec.cs /Models/Book.I ...
- 记开发个人图书收藏清单小程序开发(六)Web开发
Web页面开发暂时是没有问题了,现在开始接上Ptager.BL的DB部分. 首先需要初始化用户和书房信息.因为还没有给其他多余的设计,所以暂时只有个人昵称和书房名称. 添加 Init Razor Pa ...
- 记开发个人图书收藏清单小程序开发(四)DB设计
早上起来,又改动了一下: 主要是,将非常用信息全部拆分出来,让Table尽量的小,小到不能继续拆分了,这样区分DB逻辑.增加了FileBank存储Book的封面图片,统一管理图片资源. 新添加的Typ ...
- 记一次基于 mpvue 的小程序开发及上线实战
小程序名称:一起打车吧 项目地址: 客户端:https://github.com/jrainlau/taxi-together-client 服务端:https://github.com/jrainl ...
- 微信小程序开发系列(一)小程序开发初体验
开发小程序所需的基本技能 关于小程序的介绍和使用场景这里不作介绍,这个系列的文章会一步一步地带领大家快速地学习和掌握小程序的开发. 关于还没有接触过小程序的开发者来说,最关心的问题无非就是,开发小 ...
- [转]微信小程序开发系列(一)小程序开发初体验
本文转自:http://www.cnblogs.com/rennix/p/6287432.html 开发小程序所需的基本技能 关于小程序的介绍和使用场景这里不作介绍,这个系列的文章会一步一步地带领 ...
随机推荐
- CentOS常用命令、快照、克隆大揭秘
不多说,直接上干货! cat是查看文件内容, cp –cp是连目录及件文件都拷贝 cp是拷贝文件 a.txt里的内容是, abc def ghi cat a.txt |grep –v gh ...
- javac之Inferring Type Arguments Based on Actual Arguments
We use the following notational conventions in this section: Type expressions are represented using ...
- traefik+etcd构建grpc微服务demo
1.下载安装traefik https://github.com/containous/traefik/releases 2.下载安装etcd3 https://github.com/coreos/e ...
- 14-hadoop-运行的2种方式
hadoop的程序运行有, 具体有3种, 除了上一篇(http://www.cnblogs.com/wenbronk/p/6662119.html)提过的直接发布jar上传到hadoop以外, 还有本 ...
- java NIO系列教程1
ava NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式. Java NIO: Channel ...
- 转载《浅析MVC框架中View层的优雅设计及实例》
在基于B/S的应用程序开发中,从基本的技术分工上来说就是两大块,一是软件显示界面,另一个是程序逻辑.在N年前的脚本语言时代,无论是asp.php还是jsp,我们基本是都是把这两者柔和在一起的.尽管我们 ...
- antlr提取代码注释
1. 来由 为什么要写提取注释呢,起因是工作需要.弄这么个不太重要的功能点来讲,旨在抛砖引玉. 一般而言,大家使用antlr解析源代码的时候,不会关心注释和空格之类内容,默认会过滤掉,不会放到语法树里 ...
- lucene源码分析(4)Similarity相似度算法
lucene 7.5.0默认的评分Similarity是BM25Similarity (IndexSearcher.java) // the default Similarity private st ...
- ruby楼层排序问题
求教楼层排序问题 要求正确楼层排序为: B2,B1,1F,2F,3F...10F,11F 现有这13个无序的楼层 怎么排列成上面的格式? 求教 luikore 1楼 , 19小时前 1人喜欢 sort ...
- @Resource和@Autowired区别
@Resource和@Autowired都是做bean的注入时使用 历史: @Autowired 属于Spring的注解 org.springframework.beans.facto ...