Как добавить несколько переменных текстового поля в один запрос выбора SQL с помощью бритвы cshtml?

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

 {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>

1 ответ

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

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);}

Часть формы теперь выглядит так:

   {<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>}
Другие вопросы по тегам