# STMS **Repository Path**: dataset/STMS ## Basic Information - **Project Name**: STMS - **Description**: 仓库管理系统官方源码 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 8 - **Created**: 2023-08-23 - **Last Updated**: 2023-08-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # STMS ## 简介 仓库管理系统官方源码,完善、可运行,不再做修改。版权归原作者所有。 另建WMS仓存放练习代码。 视频地址:https://www.bilibili.com/video/BV1q34y1W7hL/?=3&spm_id_from=pageDriver&vd_source=aade28408008fe0ffee5016cb40b8051 实现效果: ![输入图片说明](README/run.png) ## 运行代码的关键步骤 ![输入图片说明](README/SQL.png) 修改为自己要存放的地址,连接上数据库后直接点击执行,创建示例数据库。 ![输入图片说明](README/APP.config.png) 数据库连接前改为自己的数据库名称 ## 课程内容 ### 1. SQL建表 建立6张表: ![输入图片说明](README/1.png) ### 2. 项目结构 ![输入图片说明](README/2.png) UI:Winform应用程序/WPF/Web BLL:业务逻辑--业务逻辑处理,连接UI与DAL的桥梁 DLL:数据访问--处理数据(数据库) 此外,还有: DbUtility:数据访问通用类库 Models:实体模型层 (类:一系列的属性:表中的列名) DModels--数据表对应实体类 UIModels--UI层,BLL层的实体类 VModels--视图对应的实体类 Common: 辅助工具层 Communicate:通信类库 ### 3. 添加新项目--Windows 窗体应用(.NET Framework) ### 4. 项目间的互相引用 ![输入图片说明](README/3.png) ### 5. 根据数据库表创建类 ### 6. 表、列、主键特性创建 特性:用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签 反射技术 添加三个特性: TableAttribute:用来映射数据库表名 ColumnAttribute:映射列名 PrimaryKeyAttribute:标注主键列名 ## Common层 ### AttributeHelper.cs 扩展方法:静态类中的静态方法,this修饰--作用于哪个类型,向现有类型添加方法,像调用实例一样使用 GetTName(this Type type) GetColName(this PropertyInfo property) string GetPrimary(this Type type) IsPrimary(this Type type,PropertyInfo property) IsIncrement(this Type type) ### PropertyHelper.cs PropertyHelper详解--获取指定类型的指定列名的属性数组 作用类型:实体类、生成Insert Update Select 拼接列名,以“,”隔开的字符串 PropertyInfo[] GetTypeProperties(string cols) 返回全部属性数组:cols-->"" 返回部分列的属性数组:cols-->"UserId,username,userpwd" 用到了泛型、反射、扩展方法、字符串的转换 ### DbConvert ![输入图片说明](README/DbConvert.png)