2012-07-22 103 views
0

我试图创建表单,用户可以在其中输入多达3个表单的文本。每个表单将对应于SQL Server CE数据库表中的列。根据输入到表单中的文本,页面将显示包含所有指定文本的所有行(空值被视为通配符)。从同一个表中的多个列中选择行SQL Server CE WebMatrix

我有这个工作正常1形式。表单文本被分配为一个变量的值,并在页面之间传递没有问题。我只是不确定如何在查询中包含其他两列。

这里是什么形式的输入页面的代码:

@{ 
var formValue1 = Request.Form["FN"]; 
var formValue2 = Request.Form["LN"]; 
var formValue3 = Request.Form["CPNY"]; 
if (IsPost) 
{ 
     Response.Redirect("DisplaySearch.cshtml?firstname=" + formValue1); 
     Response.Redirect("DisplaySearch.cshtml?lastname=" + formValue2);  
} 
} 

<form action="" method="post"> 
First Name:<input type="text" ID="FN" name="FN" value=""></input><br> 
Last Name:<input type="text" ID="LN" name="LN"></input><br> 
Company:<input type="text" ID="CPNY" name="CPNY"></input> 
<br> 
<input type="submit" value="Search"></input></form> 

下面是显示页面的代码:

@using WebMatrix.Data 

@{ 
var Keyword1 = Request.QueryString["firstname"]; //Retrieves passed variable from the database search page for First Names 
var Keyword2 = Request.QueryString["lastname"]; //Retrieves passed variable from the database search page for First Names 
var Keyword3 = Request.QueryString["company"]; //Retrieves passed variable from the database search page for First Names 
var db= Database.Open("Orientation"); 
var sqlQ = "SELECT * FROM Orientation WHERE FirstName LIKE @0"; 
var data = db.Query(sqlQ, "%" + Keyword1 + "%"); 
} 

<div class="content-box-main"> 

<ol> 
@foreach(var row in data){ 
<li> 
@row.LastName, @row.FirstName, @row.MiddleName, @row.Email, @row.Company, @row.Date 
</li> 
} 
</ol><br> 

</div> 

帮助是非常感谢!我是创建Web应用程序的小菜鸟,2周前我唯一的编程经验是Office中奇怪的VBA宏。我将再次提及,我正在使用WebMatrix和SQL Server CE。我知道SQL Server CE有一些限制,尽管我喜欢使用易用性,因为我是一个noob。如果任何人有任何建议使用不同的SQL Server程序,我会开放的听取他们的意见。

谢谢!

詹姆斯

回答

0
Response.Redirect("DisplaySearch.cshtml?firstname=" + formValue1 + "&lastname=" + formValue2 + "&company=" + formValue3); 

var sqlQ = "SELECT * FROM Orientation WHERE FirstName LIKE @0 AND LastName LIKE @1 AND Company LIKE @2"; 
var data = db.Query(sqlQ, "%" + Keyword1 + "%", "%" + Keyword2 + "%", "%" + Keyword3 + "%"); 
+0

感谢sblom!这就像一个魅力!如果你愿意的话,我也有一个“奖金”问题。如果我想显示在动态日期范围内输入的网页加载记录(如今天 - 2个月),该怎么办?假设我有一个名为“日期”的列,记录输入记录时的日期戳记。 – user1544485 2012-07-22 21:52:03

+0

我建议这是一个单独的问题。我现在必须跑,但其他人也许可以帮助你 - 这将是非常简单的。 – sblom 2012-07-22 21:56:37

相关问题