
1.9 房源信息查询模块设计

视频讲解
1.9.1 房源信息查询模块概述
房源信息查询是房屋中介系统中重要的功能之一,它主要根据物业名称、楼层、价格、面积、朝向等条件进行查询,并且部分字段支持模糊查询。
房源信息查询窗体运行结果如图1.27所示。

图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对象实现一个简单的数据表查询功能。代码如下:

1.9.3 房源信息查询模块实现过程
(1)新建一个Windows窗体,命名为frmSelect.cs,用于查询房源信息,该窗体主要用到的控件及属性设置如表1.11所示。
表1.11 房源信息查询窗体主要用到的控件

(2)声明局部变量及公共类ClsCon的对象,通过ClsCon的对象调用类中的方法,用于实现数据库连接,实现代码如下:
例程22 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmSelect.cs

代码贴士
❶ 定义局部变量strSql,用于存放生成的SQL语句。
❷ 定义局部变量strMidle,用于存放要查询的字段。
❸ 定义局部变量strWhere,用于存放生成SQL语句的条件信息。
❹ 定义连接对象。
在frmSelect窗体的Load事件中,DataGridView控件进行数据绑定,以显示房源相关信息。frmSelect窗体的Load事件实现代码如下:
例程23 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmSelect.cs

通过选择CheckBox控件生成查询条件语句,每个CheckBox控件对应房源表中相关的字段。这里只列举一个字段的生成,其他相关字段生成可参见本书资源包中的源程序。实现代码如下:
例程24 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmSelect.cs

代码贴士
❶ strMidle变量用于记录要操作的字段,并通过@作为分隔字符。在下面查询按钮中,通过Split()系统函数对strMidle变量进行操作。
单击“查询”按钮,对strMidle变量进行相关处理,动态生成SQL语句。这里列出部分代码,其他可参见本书资源包中的源程序。
例程25 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmSelect.cs


代码贴士
❶ strMidle变量用于记录要查询的字段,@作为分隔字符,通过Split()系统函数对strMidle变量进行操作,得到查询字段列表。
❷ 判断是否要进行查询操作。
❸ 通过Replace()系统函数改变strMidle变量以便得到正确的Where条件。
❹ 进行判断SQL语句是否合法。
❺ 将变量strWhere设置为string.Empty。
❻ 将strSql对象通过Remove()方法清空。