0

ユーザーが最大3つのフォームにテキストを入力できるフォームを作成しようとしています。各フォームは、SQLServerCEデータベーステーブルの列に対応します。フォームに入力されたテキストに基づいて、ページには、指定されたすべてのテキストを含むすべての行が表示されます(null値はワイルドカードとして扱われます)。

私はこれを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とSQLServerCEを使用しています。SQL Server CEにはいくつかの制限があることは知っていますが、初心者である私にとっては使いやすさを楽しんでいます。使用するさまざまなSQLServerプログラムについて誰かが提案を持っている場合、私はそれらを聞いてオープンになります。

ありがとう!

ジェームズ

4

1 に答える 1

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 + "%");
于 2012-07-22T21:25:39.577 に答える