Попытка выполнить sql-запрос в методе и просмотреть его в представлении .net

#c# #.net #asp.net-mvc

#c# #.net #asp.net-mvc

Вопрос:

Я пытаюсь выполнить sql-запрос из класса.

Я сделал это, создав этот метод:

 public class GetSQL
{
    public static string getsomedata(string data)
    {
        database2Entities db2 = new database2Entities();
     
        var output = db2.cards.SqlQuery("SELECT cardName from cards WHERE cardID ="  data);
        
        var outputtostring = output.ToString();
        return outputtostring;
    }
 
}
  

Затем я вызвал его из представления:

 @model IEnumerable<StockManagementSystem.Models.form>
@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Full_Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.cardtype)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Full_Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.cardtypeid)
           
            <div class="col-md-10">
                @{
                    StockManagementSystem.Models.database2Entities db = new StockManagementSystem.Models.database2Entities();
                    List<StockManagementSystem.Models.card> ListCategory = db.cards.ToList();
                    var outputdata = @item.cardtypeid.ToString();
                    var result = StockManagementSystem.App_Code.GetSQL.getsomedata(outputdata);

                                <label>@result</label>

    
                }
                @*@Html.DropDownList("CategoryId", null, htmlAttributes: new { @class = "form-control" })*@
                @*@Html.ValidationMessageFor(model => model.cardtypeid, "", new { @class = "text-danger" })*@
            </div>
            
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.FormID }) |
            @Html.ActionLink("Details", "Details", new { id=item.FormID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.FormID })
        </td>
    </tr>
}

</table>
  

но мой вывод всегда таков: «ВЫБЕРИТЕ cardName из card, ГДЕ CardID =» (плюс переданные данные)

Я попытался изменить sql-запрос, и я также попробовал этот запрос в mysql, который работает. Проблема заключается в выводе. Все остальные детали в index.cshtml сгенерированы, единственное, чего нет, это этот запрос.

Комментарии:

1. Каков возвращаемый тип db2.cards.SqlQuery ?

2. Я преобразовал toString(); @ChetanRanpariya

3. Это означает, что метод SqlQuery возвращает "SELECT cardName from card WHERE cardID =" ? И когда вы это делаете, ToString() он просто возвращается "SELECT cardName from card WHERE cardID =" … ? Можете ли вы также объяснить, какой результат вы ожидаете в вопросе?

4. Хорошо, да, это имеет большой смысл, но я столкнулся с вопросом, и человек начал использовать, например, db.cards. SqlQuery<string>(), но мой возвращает ошибку, указывающую, что DbSet<cards> нельзя использовать с аргументами типа

5. попробуйте db2.cards.SqlQuery<StockManagementSystem.Models.card>