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