![C#项目开发全程实录(第4版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/544/24172544/b_24172544.jpg)
1.9 房源信息查询模块设计
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P40_15683.jpg?sign=1739587947-00aqmngHwnVkiSbnZZ4205mOseEMyVfX-0-1a2aeea7deacdc858fa52072d8960408)
视频讲解
1.9.1 房源信息查询模块概述
房源信息查询是房屋中介系统中重要的功能之一,它主要根据物业名称、楼层、价格、面积、朝向等条件进行查询,并且部分字段支持模糊查询。
房源信息查询窗体运行结果如图1.27所示。
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P40_15673.jpg?sign=1739587947-E2NTquPEbwKzEU3wjetOHEnnTkJsQ9ta-0-0141e6f8be04b7b74a9fa7753f0d1976)
图1.27 房源信息查询窗体
1.9.2 房源信息查询模块技术分析
房源信息查询窗体是将本窗体中的各个查询条件组合为SQL查询语句,然后在指定的数据表中进行查询。
下面对SQL的查询语句进行详细说明。
SELECT select_list [ FROM table_source ][ WHERE search_condition ]
select_list:数据表中的字段名称,可以用*表示所有字段。
table_source:数据表名称。
search_condition:条件表达式。
本模块应用SqlDataAdapter对象来执行SQL查询语句,其语法格式如下:
SqlDataAdapter(string selectCommandText, SqlConnection selectConnection);
selectCommandText:SQL语句。
selectConnection:表示SQL Server数据库的一个打开连接。
下面用SqlDataAdapter对象实现一个简单的数据表查询功能。代码如下:
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P41_52132.jpg?sign=1739587947-OWNNLO9E7zoUA5Ec8UJSbxOw9yr7hd78-0-4fadd9813eef16212b88ca3210cf172e)
1.9.3 房源信息查询模块实现过程
(1)新建一个Windows窗体,命名为frmSelect.cs,用于查询房源信息,该窗体主要用到的控件及属性设置如表1.11所示。
表1.11 房源信息查询窗体主要用到的控件
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-T41_51688.jpg?sign=1739587947-uUZhtl0zP1qlvQpCVqfsukvgvHSblgB8-0-6c2f08626ca84769e63b91c798795efe)
(2)声明局部变量及公共类ClsCon的对象,通过ClsCon的对象调用类中的方法,用于实现数据库连接,实现代码如下:
例程22 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmSelect.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P42_52135.jpg?sign=1739587947-E1R8MuBD7dEWbdjDIia0I70qNcOeWytH-0-7007b04cfeaa33a201f8f1096ff4790f)
代码贴士
❶ 定义局部变量strSql,用于存放生成的SQL语句。
❷ 定义局部变量strMidle,用于存放要查询的字段。
❸ 定义局部变量strWhere,用于存放生成SQL语句的条件信息。
❹ 定义连接对象。
在frmSelect窗体的Load事件中,DataGridView控件进行数据绑定,以显示房源相关信息。frmSelect窗体的Load事件实现代码如下:
例程23 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmSelect.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P43_52138.jpg?sign=1739587947-lu0eSMtZ0CwueRRT7eB3JW4mu86xMU1U-0-5d8945f2d62024ff38202dd9e8d176f7)
通过选择CheckBox控件生成查询条件语句,每个CheckBox控件对应房源表中相关的字段。这里只列举一个字段的生成,其他相关字段生成可参见本书资源包中的源程序。实现代码如下:
例程24 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmSelect.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P43_52140.jpg?sign=1739587947-zuVPOsAOCv8DSsxgdZ18GBXlR7G8boGL-0-456e1125af51f8c7363720e69fba943b)
代码贴士
❶ strMidle变量用于记录要操作的字段,并通过@作为分隔字符。在下面查询按钮中,通过Split()系统函数对strMidle变量进行操作。
单击“查询”按钮,对strMidle变量进行相关处理,动态生成SQL语句。这里列出部分代码,其他可参见本书资源包中的源程序。
例程25 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmSelect.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P44_52143.jpg?sign=1739587947-DPFfBsDtSgMSTZ0lRMeIaYamjxNVva6n-0-07635aacfbe50edd74ad7d4c9b36e75b)
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P45_52144.jpg?sign=1739587947-A3h4LiKBj8eYEU5N3D4bWw5GzXLPLgmh-0-7e964631213ffd5331de21dfea9c75fa)
代码贴士
❶ strMidle变量用于记录要查询的字段,@作为分隔字符,通过Split()系统函数对strMidle变量进行操作,得到查询字段列表。
❷ 判断是否要进行查询操作。
❸ 通过Replace()系统函数改变strMidle变量以便得到正确的Where条件。
❹ 进行判断SQL语句是否合法。
❺ 将变量strWhere设置为string.Empty。
❻ 将strSql对象通过Remove()方法清空。