![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=1739593695-DMygJFyMzDGtPxOxqXntDTgpHMBfiOuO-0-14e243625c247fde7a28a47ce12c4c6d)
视频讲解
在开发项目中以类的形式来组织、封装一些常用的方法和事件,不仅可以提高代码的重用率,也大大方便了代码的管理。本系统中创建了公共类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=1739593695-7wf5eVKSKcoqwS6gPfH5nk0lM7TV9xbJ-0-89f7b387c94880411bba6d265f0eb824)
图1.14 主文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52050.jpg?sign=1739593695-by6N1lTrVdXv4ZYZs1M1m2q7avp2c9Ar-0-6abb39c71d987a652234720f5cf6839e)
图1.15 员工信息管理文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52051.jpg?sign=1739593695-3m6JF8IqQAnwJk6WxOp1pbGYA5yxjDXL-0-f6107e18c15d96861f4725eef560949b)
图1.16 用户信息管理文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52052.jpg?sign=1739593695-bBpScbyezkEJAWdNtHZ3OjIfFlZrm88a-0-26737fd608de02a26401997b7634154b)
图1.17 求租管理文件架构图
出租管理文件架构如图1.19所示。系统管理文件架构如图1.20所示。
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52053.jpg?sign=1739593695-QPru3aM8xQc0dvi6lIskuj9ZIeu32snL-0-42f25afba2ed4466d4a6571b5decfeb2)
图1.18 常用工具文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52054.jpg?sign=1739593695-2KAllBeonhstHEtNQba1BewEfRQ6lope-0-52bd57f06b0f94421bf8fb402cd039d8)
图1.19 出租管理文件架构图
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P20_52055.jpg?sign=1739593695-VzvuNvhlaeyC9ayhQHsUcPM3KNG2PZqb-0-24233f9b7e9877da0121e039179d2352)
图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=1739593695-RX4HOGSq1O2fJTlBQ1wTHKjNzhp9yNZ4-0-81f890c1daee79503dc822b6826855d1)
接下来,对上面代码中的自定义方法进行详细介绍。
1.ConDatebase()方法
ConDatebase()方法用于建立数据库连接,其实现代码如下:
例程02 代码位置:资源包\TM\01\houseAgency\mothedCls\ClsCon.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P21_52057.jpg?sign=1739593695-6lcmzaUqgMRFiB2nf2nDxtuoKVIbrfDl-0-901aa6750c278fb511a465636f2a23cb)
2.closeCon()方法
closeCon()方法实现关闭打开的数据库连接,其实现代码如下:
例程03 代码位置:资源包\TM\01\houseAgency\mothedCls\ClsCon.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P21_52058.jpg?sign=1739593695-OzvUJZg4357KFIbL45ciczByOtHi8xaU-0-edcb9633c676315b080a66b3bb85e9bd)
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=1739593695-x8VO1tSRygBdhtdaDp1npohrKJjB6VM6-0-6b089a2565c6527faffae23eec7e4a43)
说明
在定义实体类时可以为其属性指定默认值,这样可减轻前台的负担。
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=1739593695-abyFsqxbv1FrcEDRztZI4XR8dR9vPMKJ-0-207f059ee532753bda8148948817855b)
代码贴士
❶ 为SqlCommand指定要调用的存储过程名proc_favor_insert。
❷ 定义CommandType为StoredProcedure存储过程。
❸ 通过SqlParameter数组为SqlCommand定义参数,同时指定大小类型等,参数名要与存储过程中的参数名相同。
❹ 初始化SqlParameter类的一个新实例,该类使用参数名、参数的类型、参数的长度、方向、精度、小数位数、源列名称、DataRowVersion值之一、用于源列映射的布尔值、SqlParameter的值、此XML实例的架构集合所在的数据库的名称、此XML实例的架构集合所在的关系架构以及此参数的架构集合的名称。
❺ 获得存储过程的返回值。