【问题标题】:Selecting rows from multiple columns in the same table SQL Server CE WebMatrix从同一个表中的多列中选择行 SQL Server CE WebMatrix
【发布时间】:2012-07-22 21:20:15
【问题描述】:

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

我在 1 种表格中可以正常工作。表单文本被分配为变量的值并在页面之间传递没有问题。我只是不确定如何在查询中包含其他 2 列。

这是带有表单的输入页面的代码:

@{ 
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 有一些限制,尽管我喜欢作为菜鸟的易用性。如果有人对使用不同的 SQL Server 程序有任何建议,我愿意听取他们的意见。

谢谢!

詹姆斯

【问题讨论】:

    标签: c# database razor webmatrix


    【解决方案1】:
       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 + "%");
    

    【讨论】:

    • 谢谢sblom!这就像一个魅力!如果你愿意的话,我也有一个“奖励”问题要问你。如果我想显示在动态日期范围(如今天 - 2 个月)内输入的页面加载记录怎么办?假设我有一个名为“日期”的列,它在输入记录时记录一个日期戳。
    • 我建议将其作为一个单独的问题提出。我现在必须跑,但其他人可能会帮助你——这很简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 2019-12-06
    • 2013-02-18
    • 2011-12-26
    • 2012-08-15
    • 2012-04-15
    相关资源
    最近更新 更多