CSHTML - SQL QUERY .... WHERE NAME = @ NameOne - PullRequest
0 голосов
/ 23 июля 2011

Я использую ASP.NET Razor.

<form style="display:inline" name="formular1" method="post" action="default.cshtml">
                           <select name="phone1" class="dropdown">
                            @foreach(var row in db.Query("SELECT * FROM Handy")){
              <option value="@row.Handyname">@row.Handyname</option>
            }
                                        </select>
        vs.
                           <select name="phone2" class="dropdown">
                                            @foreach(var row in db.Query("SELECT * FROM Handy")){
              <option value="@row.Handyname">@row.Handyname</option>
            }
                                        </select>
        <input type="submit"/ value="Compare">
        </form>
        @{
            var phoneOne = "";
            var phoneTwo = "";
                    if(IsPost){

                        // request input of the select forms
                        phoneOne = Request["phone1"];
                        phoneTwo = Request["phone2"];  
                    }
                }                                     
    </div>

    <div class="content">
        <div class="start"> 
            <p><h2>@phoneOne</h2></p>
            <ul>
            @{
                if(IsPost){
                    foreach(var row in db.Query("SELECT * FROM Handy WHERE Handyname=@phoneOne")){
              <li>processor: @row.Prozessor GHz</li>
                <li>memory: @row.RAM MB Ram</li>
                <li>weight: @row.Gewicht g</li>
                <li>display: @row.Display ''</li>
                <li>OS: @row.OS</li>
            }
                }
            }


            </ul>
        </div>

Получение ошибки с запросом: ГДЕ Handyname = @ phoneOne ... оставляя все это работает нормально. Что я делаю не так?

Спасибо!)

Ответы [ 3 ]

1 голос
/ 23 июля 2011

Как описано здесь , попробуйте следующее:

foreach(var row in db.Query("SELECT * FROM Handy WHERE Handyname=@@phoneOne")){
1 голос
/ 23 июля 2011

Не совсем уверен, но я думаю, вам нужно заменить это:

foreach(var row in db.Query("SELECT * FROM Handy WHERE Handyname=@phoneOne"))

На это:

foreach(var row in db.Query("SELECT * FROM Handy WHERE Handyname= " + phoneOne))
0 голосов
/ 16 сентября 2011

Является ли db ссылкой на компонент базы данных в Razor? Если это так, вместо этого используются @ 0, @ 1, (индексы) без именованных параметров.

foreach(var row in db.Query("SELECT * FROM Handy WHERE Handyname=@0"))

И передать значение через набор параметров в этом методе тоже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...