![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=1738815539-FNPtCGFMFpCq2XTJHKVvnTHsjGa4TDPa-0-b86fcaed496d8fc77e7761a6a6ef7f7e)
视频讲解
1.9.1 房源信息查询模块概述
房源信息查询是房屋中介系统中重要的功能之一,它主要根据物业名称、楼层、价格、面积、朝向等条件进行查询,并且部分字段支持模糊查询。
房源信息查询窗体运行结果如图1.27所示。
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P40_15673.jpg?sign=1738815539-WRgQUDewPtpwfa4pyKecVoCzSZu76XVm-0-46a0a297c565d30dcd3b94dc0f7cae85)
图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=1738815539-BizgqeotBJrNrJfub8CiSzunZeKqVZff-0-952e321e2bf6b191181d71b35f66544d)
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=1738815539-risKn3YCnDpTEA1EXPpM1vSLv7Hvvpgn-0-331e49181a02fdbd35d108f087ef721c)
(2)声明局部变量及公共类ClsCon的对象,通过ClsCon的对象调用类中的方法,用于实现数据库连接,实现代码如下:
例程22 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmSelect.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P42_52135.jpg?sign=1738815539-Ip6wjjWfLeb2R37IGm3hD9na9KBvvRHt-0-403ffd1affe2a97ffc151ce5a664a9df)
代码贴士
❶ 定义局部变量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=1738815539-zCL0DvW70EMkN6xi7WOmPMeBFEFK5vXC-0-1b2940eb611e56aa57f42475cdeef736)
通过选择CheckBox控件生成查询条件语句,每个CheckBox控件对应房源表中相关的字段。这里只列举一个字段的生成,其他相关字段生成可参见本书资源包中的源程序。实现代码如下:
例程24 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmSelect.cs
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P43_52140.jpg?sign=1738815539-UvAYMVG8Xc9PzD76jMYA04LvKqfjEym7-0-f07638743876a94a7f1b945c9eed733a)
代码贴士
❶ 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=1738815539-obfiR9EIG3bCG79MBzLpBiI8EaTiOr3K-0-56e2634dbf0153b2e208a06fc1252864)
![](https://epubservercos.yuewen.com/64AA3F/13043251004879506/epubprivate/OEBPS/Images/Figure-P45_52144.jpg?sign=1738815539-cBVwCYTJWRNwX1124DwAXK7SU5fCrfPO-0-15ca3201ecf22e9afb66f31bd67d2db2)
代码贴士
❶ strMidle变量用于记录要查询的字段,@作为分隔字符,通过Split()系统函数对strMidle变量进行操作,得到查询字段列表。
❷ 判断是否要进行查询操作。
❸ 通过Replace()系统函数改变strMidle变量以便得到正确的Where条件。
❹ 进行判断SQL语句是否合法。
❺ 将变量strWhere设置为string.Empty。
❻ 将strSql对象通过Remove()方法清空。