这是一个租房子的一个选择控件,我需要一个存储过程。下面这些 城市,地区,户型,发布日期,价格是下拉列表里的选项,默认选项都是“所有”。有可能用户只选择其中几个。比如:用户选择了城市和地区其它的都没有选择就是搜索出城市和地区相关的信息。再比如用户只选择了价格就显示出那个价格的所有房子的信息,所以这些条件都得考虑到。房子的基本信息都放在NEW表中,直接 select * from new 就可以了。
字段都写成中文就可以了城市 地区 户型 发布日期 价格 关键字所有 所有 所有 所有 所有 所有
北京 朝阳 二居 1天 500以下 海丰园(关键字搜的是小区名)
北京 海淀 三居 2天 500-1000 清华园
... ... ... 3天 1000-2000 ...
... ... ... 4天 2000-3000 ...
... ... ... 5天 3000-4000 ...
... ... ... 6天 4000-5000 ...
... ... ... 一星期 5000-7000 ...
... ... ... 两星期 7000以上 ...
用SQL语句我是怎么也实现不了了,我想问问是不是可以在.net代码里先过一下,可以简化存储过程呢?我想在C#中把“当前日期”和数据库里字段的“日期”都转成字符型,然后把那个数据差出来再和1天,2天这样的数据进行比较,得出我要的结果。还有就是我怎么用“价格”一个下拉框,实现 500以下,500-1000 这样的方法
不管什么方法吧,请大家给我出出主意,看我这个怎么实现这个功能,谢谢了。
select * from new where (城市='选择的值' or '选择的值'='所有') and ....
使用where 价格=500 or 价格 is null
IDCommand.CommandText =SELECT * FROM 表 DERIVEDTBL WHERE (城市 LIKE @城市+'%') AND (地区 LIKE @地区+'%') AND (户型 LIKE @户型+'%')等等等等
adapter.SelectCommand = IDCommand;
关闭数据库
DataSet dss = new DataSet();
adapter.Fill(dss, "search");
GridView1.DataSource = dss.Tables["search"].DefaultView;
GridView1.DataBind();
IDCommand.Parameters.AddWithValue("@户型", DropDownList1.SelectedValue.Trim());
还有。。这些字段必须在一个表里面。如果在多个表。那就要写新的sql语句了。