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