前言:
对于那些零基础编写第一个C#小型系统的新手而言,最重要的永远是:编译通过,基本功能实现。C#以及窗体编程的特点决定了,即使你有全部的功能代码,你也不可能不加思考的完成既定功能。在示范代码看起来足够“好”的情况下(比如:多构造通用类,多调用自己编写的通用函数,而不是每个窗体上都有满天飞的数据库定义,如sqlDataAdapter, sqlCommandBuilder),先立足把书中的功能完成,再进行深入的思考。对于新手来说,不要高估自己的实力,很可能你的代码写的和示例一样也不能达到预定的功能,这时哪怕用最脏的方法,以完成功能为第一要务,等软件的基本功能实现了之后再进行反思以及改进。
当第一次编写完成后,可以通过写技术博客的方式总结经验,拟从以下几个角度入手:
1. 需求分析是否正确?功能板块之间的逻辑关系是否正确?
2. 在正常使用软件的情况下,是否所有功能都正确的得到了满足?
3. 窗体外形设计是否合理(这里指的不是美观)?
4. 空字段输入是否应该允许?如何处理错误的输入?
5. 是否需要快捷键?是否需要提示?
6. 是否按照规定进行了注释?注释是否真正具有解释作用?
7. 变量是否具有自解释性?是否便于维护?
8. 模块是否可以进行精简?可重用的代码是否以函数的形式调用?
9. 更多细节问题(是否可编辑?只读?光标默认位置?Tab顺序?……)
不断的优化自己的代码,不断的精益求精,才是踏踏实实学习一门语言的捷径。
----------------------------------------------------------------------------------------------------------------------
我的这份文档是在第一次编写完成后进行写作的。通过写作,可以找出自己没有思考或思考不足的地方。
主要内容:实现功能简介。
进入界面后功能:
1. 登录(用户,管理员):用户登录后可以进行自己的借阅记录查询以及查阅书籍;未登录用户可以查阅书籍;管理员具有最大权限。
2. 查询图书:以只读方式查找书籍。
3. 借阅记录查询:通过借书证号进行借阅查询(暂不支持借阅历史查询)
4. 增加图书:需要管理员权限。
5. 修改图书:需要管理员权限。
6. 删除图书:需要管理员权限。
7. 借阅图书:需要管理员权限。
数据库:(取名应该短,比如BookInfo,我这一开始没注意)
(1)UserInformation
UID : 用户ID,int,自动,主键(自动编号在increment属性中设置)
UName : 用户名,varchar,不为空
UPwd : 用户密码,varchar,不为空
UBookID : 借阅证号, bigint, 可为空(管理员不需要借阅证号)
UState : 用户权限(管理员,普通用户,未登录用户),int,默认值为普通用户
(2)BookInformation
BookID : 图书ID,bigint,自动,主键
BookName : 图书名称,varchar,不为空
BookType : 图书类别,varchar,不为空
BookAuthor : 作者,varchar,不为空
BookPrice : 价格,smallmoney,不为空
BookPic : 封面,varchar,可以为空
BookContent : 内容简介,varchar,不为空
BookIssue : 图书访问码,varchar,不为空
(3)BookLendInformation
IssID : 借阅ID,bigint,自动,主键
BookID : 图书ID,bigint,外键
UBookID : 借阅证号,bigint,外键
IssDateTime : 借书日期,datetime,不为空