2015-05-27 4 views
0

В настоящее время в приведенном ниже коде у меня есть две кнопки поиска и вы можете запрашивать только то, что находится в каждом поле. Я хочу заполнить оба поля и нажать одну кнопку отправки, и он запросит обе переменные. Что-то вродеКак добавить несколько переменных текстового поля в один запрос на выбор sql, используя cshtml razor?

{if(!Request.QueryString["searchDateIn"].IsEmpty()) 
    selectCommand = "SELECT * FROM Data_TimeCards_T WHERE Employeeid = @0 
    and datein = @1"; 
    searchTerm = Request.QueryString["searchEmployee"];} 

Мой код теперь выглядит как этот

var db = Database.Open("datbasename") ; 
var selectCommand = "SELECT * FROM Data_timecards_T"; 
var searchTerm = ""; 

if(!Request.QueryString["searchEmployee"].IsEmpty()) { 
    selectCommand = "SELECT * FROM Data_TimeCards_T WHERE Employeeid = @0"; 
    searchTerm = Request.QueryString["searchEmployee"]; 
} 

if(!Request.QueryString["searchDateIn"].IsEmpty()) { 
    selectCommand = "SELECT * FROM Data_timeCards_t WHERE Datein = @0"; 
    searchTerm = Request.QueryString["searchDateIn"] ; 
} 

var selectedData = db.Query(selectCommand, searchTerm); 
var grid = new WebGrid(source: selectedData, defaultSort: "EmployeeID", rowsPerPage:3); 

И тело выглядит так

<form method="get"> 
     <div> 
     <label for="searchEmployee">Employee to look for:</label> 
     <input type="text" name="searchEmployee" value="@Request.QueryString["searchEmployee"]" /> 
     <input type="Submit" value="Search Employee" /><br/> 
     (Leave blank to list all movies.)<br/> 
     </div> 

     <div> 
      <label for="searchDateIn">DateIn contains the following:</label> 
      <input type="text" name="searchDateIn" value="@Request.QueryString["searchDateIn"]" /> 
      <input type="Submit" value="Search Date In" /><br/> 
     </div> 
     </form> 

    <div> 
     @grid.GetHtml(
     tableStyle: "grid", 
     headerStyle: "head", 
     alternatingRowStyle: "alt", 
     columns: grid.Columns(
      grid.Column("DateIn"), 
      grid.Column("EmployeeID"), 
      grid.Column("TotalTime") 
     ) 
    ) 
    </div> 
+0

Какая у вас база данных? LINQ отлично подходит для такого рода вещей. –

+0

MS SQL - это мой формат базы данных – BrianMichaels

ответ

0

я был в состоянии решить эту проблему путем изменения кода, что вы видите ниже

var db = Database.Open("database name") ; 
var selectCommand = "SELECT * FROM Data_timecards_T"; 
    var searchEmployee = ""; 
    var searchDate = "";} 

if(!Request.QueryString["searchEmployee"].IsEmpty()) { 
     selectCommand = "SELECT * FROM Data_TimeCards_T WHERE Employeeid = @0 and Datein = @1"; 
     searchEmployee = Request.QueryString["searchEmployee"]; 
      searchDate = Request.QueryString["searchDate"]; 
    } 
    var selectedData = db.Query(selectCommand, searchEmployee,searchDate); 
    var grid = new WebGrid(source: selectedData, defaultSort: "EmployeeID", rowsPerPage:3);} 

Форма porti теперь выглядит так:

{<form method="get"> 
     <div> 
     <label for="searchEmployee">Employee to look for:</label> 
     <input type="text" name="searchEmployee" value="@Request.QueryString["searchEmployee"]" /> 
     <label for="searchDate">DateIn contains the following:</label> 
      <input type="text" name="searchDate" value="@Request.QueryString["searchDate"]" /> 
      <input type="Submit" value="SearchData" /><br/> 
     </div> 
     </form>}