![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=1739289037-0yiCAjpOpcHaalaijogqdv2wqlm98RhJ-0-a5dcfb5d78d0dcc7d0ca01502ef12bfa)
视频讲解
在开发项目中以类的形式来组织、封装一些常用的方法和事件,不仅可以提高代码的重用率,也大大方便了代码的管理。本系统中创建了公共类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=1739289037-FKOBoiOzVn0F8bHxfX1pCo9sKa80SIIj-0-a63dd7471e1d509fc13216f088b16c64)
图1.14 主文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52050.jpg?sign=1739289037-UVOO5GEGeiTtoOStX066H3Ay9geeCpS5-0-69735bbb1ea7ac72d3c0d937d2199636)
图1.15 员工信息管理文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52051.jpg?sign=1739289037-MOWIjZGtED3dPXRfwDxP2wbtxAtBazeh-0-058d7193d436d522f5312dddebac7075)
图1.16 用户信息管理文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52052.jpg?sign=1739289037-xVeLpjPctpq9HFJhrxe7gWVd2F7SQCjJ-0-2cad3e098a3b91452844ddd91a1d13fd)
图1.17 求租管理文件架构图
出租管理文件架构如图1.19所示。系统管理文件架构如图1.20所示。
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52053.jpg?sign=1739289037-7hMGBSLfmP5dborHiuYkVvjYaTleoMZ9-0-46d260880e11622dd93feed21d5c7509)
图1.18 常用工具文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52054.jpg?sign=1739289037-0JwBdCI5IW9Vge5botaoYUf2cXKrRWlq-0-f116a58b6222012f3e5080df6a2c5350)
图1.19 出租管理文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52055.jpg?sign=1739289037-GmbgSg1pzGeVMoM0CGQgU3e4OQRl4qRk-0-9ce561637100e8fbe42475a5a65fba98)
图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=1739289037-1clbCIvIB7CAiAVNnYHpntgZDzcEJPIC-0-db5e4ec9f675636b277738a4924ce706)
接下来,对上面代码中的自定义方法进行详细介绍。
1.ConDatebase()方法
ConDatebase()方法用于建立数据库连接,其实现代码如下:
例程02 代码位置:资源包\TM\01\houseAgency\mothedCls\ClsCon.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P21_52057.jpg?sign=1739289037-ZKFwhbf4POdWAGiksxWiaWtM76RK3wa0-0-3361190037213726a3a2263752b04146)
2.closeCon()方法
closeCon()方法实现关闭打开的数据库连接,其实现代码如下:
例程03 代码位置:资源包\TM\01\houseAgency\mothedCls\ClsCon.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P21_52058.jpg?sign=1739289037-8TG66rlX1nwhv3bPPYViyQmA36Rrkn2J-0-2222d77f6028f3352a7c79fcb199ff1e)
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=1739289037-Z5SUVyVACTnAjrH6LeZaBsY37OkW1fya-0-ab3d678a982dbcfeb2307d2ad077e8d7)
说明
在定义实体类时可以为其属性指定默认值,这样可减轻前台的负担。
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=1739289037-1iQFuwlqw4vh1wPOxh6J91BfGwlld0Kz-0-75ce541b5df4012dbc4841bdd0e846dd)
代码贴士
❶ 为SqlCommand指定要调用的存储过程名proc_favor_insert。
❷ 定义CommandType为StoredProcedure存储过程。
❸ 通过SqlParameter数组为SqlCommand定义参数,同时指定大小类型等,参数名要与存储过程中的参数名相同。
❹ 初始化SqlParameter类的一个新实例,该类使用参数名、参数的类型、参数的长度、方向、精度、小数位数、源列名称、DataRowVersion值之一、用于源列映射的布尔值、SqlParameter的值、此XML实例的架构集合所在的数据库的名称、此XML实例的架构集合所在的关系架构以及此参数的架构集合的名称。
❺ 获得存储过程的返回值。