![C#项目开发全程实录(第4版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/544/24172544/b_24172544.jpg)
1.5 公共类设计
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P19_12365.jpg?sign=1739418157-1UfqLnBHex6ChkFFbvEgIgqgheCIbu1P-0-1391d6580e8684430fc89c2a583e629f)
视频讲解
在开发项目中以类的形式来组织、封装一些常用的方法和事件,不仅可以提高代码的重用率,也大大方便了代码的管理。本系统中创建了公共类ClsCon.cs,并且还为每个数据表建立了自己的实体类和方法类。在此只介绍一张数据表所对应的实体类和方法类,其他数据表所对应的类,可参见本书资源包中的源程序。
1.5.1 程序文件架构
主文件架构如图1.14所示。
员工信息和用户信息管理文件架构如图1.15和图1.16所示。
求租管理和常用工具文件架构如图1.17和图1.18所示。
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52049.jpg?sign=1739418157-zIaTUrdUnBg57JhTVph4N9Fc067KWfPg-0-25b06e7e6c80baec16c6ead3e7ce027f)
图1.14 主文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52050.jpg?sign=1739418157-VC88Bx6r3dR3F4QadXKS5TqjaAKuwSpv-0-5445643898a82e4056dacbc266ec1d86)
图1.15 员工信息管理文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52051.jpg?sign=1739418157-ADRbhfEg89sdsOoqKHU07elX6ThHcDrI-0-b91a88601df887ee58b35411fa29c0bd)
图1.16 用户信息管理文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52052.jpg?sign=1739418157-9urMhSKaqkv7A5hFFOPB5TCYFpNLejj5-0-48530429eb115acd6b56e21e3e92bb46)
图1.17 求租管理文件架构图
出租管理文件架构如图1.19所示。系统管理文件架构如图1.20所示。
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52053.jpg?sign=1739418157-RS6xKOypMzLs3lJT7zOdgb2TQIldHI32-0-c44712d5f7504becee57a7bbe27fe26f)
图1.18 常用工具文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52054.jpg?sign=1739418157-v1cTkKEmZBbqdaFHgJcCsr8zUz6gF4u7-0-1b9469303000592ce884c2e6f7312b92)
图1.19 出租管理文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52055.jpg?sign=1739418157-HF6YBzBNTOZr3yGR1XZ1r21QRbrpqTiU-0-fa28ab5911e6966035fb4779e57dafab)
图1.20 系统管理文件架构图
1.5.2 ClsCon类
ClsCon主要用于创建数据库连接及关闭打开的数据连接,需要引入System.Data和System.Data.SqlClient两个命名空间,其关键代码如下:
例程01 代码位置:资源包\TM\01\houseAgency\mothedCls\ClsCon.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P21_52056.jpg?sign=1739418157-UBN4shjnQV4k9BBjLpGEmhpWvF4xKj4C-0-852fd5c99921cb63d187b21622ff268e)
接下来,对上面代码中的自定义方法进行详细介绍。
1.ConDatebase()方法
ConDatebase()方法用于建立数据库连接,其实现代码如下:
例程02 代码位置:资源包\TM\01\houseAgency\mothedCls\ClsCon.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P21_52057.jpg?sign=1739418157-vfSnwAqiELicGQyak6NtTnfWWmxgdxxF-0-25fdcecdb522b2b930f99142d3a49cd4)
2.closeCon()方法
closeCon()方法实现关闭打开的数据库连接,其实现代码如下:
例程03 代码位置:资源包\TM\01\houseAgency\mothedCls\ClsCon.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P21_52058.jpg?sign=1739418157-dQXRbVtnoNyU0ZsRo5Wd1v6tVZEuCF29-0-1c2fead7b36be47d3bc2f81ecb06ce7f)
1.5.3 clsFavor类
clsFavor实体类将tb_favor数据表的字段通过GET、SET访问器封装起来,其实现代码如下:
例程04 代码位置:资源包\TM\01\houseAgency\mothedCls\ClsFavor.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P22_52059.jpg?sign=1739418157-3lNOiV78IlA0ghYVrJndEmPxqU1Tb7L8-0-ca9e4da0c70dd2013169629cb96e49e9)
说明
在定义实体类时可以为其属性指定默认值,这样可减轻前台的负担。
1.5.4 claFavorMethod类
claFavorMethod类封装了对tb_favor数据表进行插入、修改和删除等操作的方法,由于封装的这3种方法在实现技术上类似,所以这里只介绍对tb_favor表进行插入操作的方法—insert_table()方法。
insert_table()方法首先通过实体类取出信息,然后调用数据库中的存储过程来得到执行结果,最后把执行结果传递给表示层,其实现代码如下:
例程05 代码位置:资源包\TM\01\houseAgency\mothedCls\ClsFavorMethod.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P22_52060.jpg?sign=1739418157-24Xk1729EIb1YDRchIc4YEd1LTjGl2SB-0-85e1403e869e758e70135215b3969f86)
代码贴士
❶ 为SqlCommand指定要调用的存储过程名proc_favor_insert。
❷ 定义CommandType为StoredProcedure存储过程。
❸ 通过SqlParameter数组为SqlCommand定义参数,同时指定大小类型等,参数名要与存储过程中的参数名相同。
❹ 初始化SqlParameter类的一个新实例,该类使用参数名、参数的类型、参数的长度、方向、精度、小数位数、源列名称、DataRowVersion值之一、用于源列映射的布尔值、SqlParameter的值、此XML实例的架构集合所在的数据库的名称、此XML实例的架构集合所在的关系架构以及此参数的架构集合的名称。
❺ 获得存储过程的返回值。