WebMatrix网站的搜索优化

问题描述 投票:1回答:1

我已经在这个网站上问了几个问题,并回答了很多小问题,但是我现在正试图将整个过程拼凑起来。

我有一个页面,其中显示了我数据库中的所有属性。不过,我需要找到一种方法来优化这些结果,例如,仅显示具有4个卧室等的属性。问题是,我不知道搜索词中可能有多少个变量。所以这是一个例子。

  1. 用户可能想查看所有只有4间卧室的属性
  2. 用户可能希望看到所有具有4间卧室和3间浴室并可供8人入睡的属性,等等。>>
  3. 我决定从查询字符串中提取所有变量,?numbedrooms = 4&?numbathrooms = 3

这里是我到目前为止的代码,但是它不起作用:

@{
var db = Database.Open("StayInFlorida");

IEnumerable<dynamic> queryResults;

int numBedrooms = Request.QueryString["numBedrooms"].AsInt();
int numBathrooms = Request.QueryString["numBathrooms"].AsInt();
int sleeps = 0;

List<int> argList = new List<int>();

if (Request.QueryString["sleeps"].IsInt())
{
sleeps = Request.QueryString["sleeps"].AsInt();
}

int numOfArguments = 0;

string selectQueryString = "SELECT * FROM PropertyInfo ";

if (numBedrooms != 0)
{
argList.Add(numBedrooms);
selectQueryString += "WHERE numBedrooms = @0 ";

numOfArguments++; //increment numOfArguments by 1
}

if (numBathrooms != 0)
{
argList.Add(numBathrooms);
if (numOfArguments == 0)
{
    selectQueryString += "WHERE numBathrooms = @0 ";
}
else
{
    selectQueryString += "AND numBathrooms = @" + numOfArguments + " ";
}
numOfArguments++;
}

if (sleeps != 0)
{
argList.Add(sleeps);
if (numOfArguments == 0)
{
    selectQueryString += "WHERE sleeps = @0 ";
}
else
{
    selectQueryString += "AND sleeps = @" + numOfArguments + " ";
}
numOfArguments++;
}

selectQueryString += "ORDER BY numBedrooms DESC"; //Adjust this order by clause how you see fit.

int[] argArray = argList.ToArray();

if (argArray.Length > 0)
{
queryResults = db.Query(selectQueryString, argArray); //stores a dynamic list to 'queryResults' which can later be easily iterated through with a 'foreach' list and written to the page with razor.
}
}



<!--Results Start-->

@foreach(var row in queryResults){
<div class="container">

                <h4><a href="/[email protected]">@row.PropertyName</a></h4>
                <h5>Bedrooms: @row.NumBedrooms Bathrooms: @row.NumBathrooms Sleeps: @row.NumSleeps</h5>


</div>
}
<!--Results Finish-->

因此,为了清楚起见,我需要找到一种方法来检查每个搜索查询是否有查询字符串条目,如果存在,请将其附加到SQL语句中以查看所有匹配的结果?

我已经在这个网站上问了几个问题,并回答了很多小问题,但是我现在正试图将整个过程拼凑起来。我有一个页面,其中显示了我拥有的所有属性...

sql arrays razor query-string webmatrix
1个回答
2
投票

主要来说,您似乎需要一个好的“用户界面”页面。

© www.soinside.com 2019 - 2024. All rights reserved.