#c# #sql #sql-server #razor #webmatrix
#c# #sql #sql-сервер #razor #webmatrix
Вопрос:
Есть ли какой-либо способ запросить SQL на странице Razor / Webmatrix, чтобы получить конкретную (отдельную) запись из указанного столбца в одной строке без использования foreach?
Я знаю, как настроить соединение и получить данные с помощью foreach, но есть ли способ получить одну запись из определенного столбца без цикла?
Проблема, с которой я сталкиваюсь, заключается в том, что я не выполняю запрос SELECT. Я выполняю хранимую процедуру, которая выполняет ВЫБОР внутри нее. Существует один столбец с определенным идентификатором, который одинаков для всех возвращаемых записей на основе фильтра. Я пытаюсь получить только 1 экземпляр этого значения, чтобы я мог отобразить его в заголовке моей страницы.
Если бы я использовал оператор SELECT, у меня не было бы проблем. Я бы просто получил значение distinct из нужного мне столбца, но с помощью хранимой процедуры я не могу указать столбцы, distinct и т.д…Я могу передавать только параметры.
Есть ли способ получить только одно отдельное значение вместо всех значений из столбца без select distinct ?
Комментарии:
1. Можете ли вы изменить sproc?
2. Да, я могу изменить процедуру, но что я должен изменить? Он работает правильно. Параметры работают нормально, веб-сетка на странице Razor работает нормально, просто я также хочу отобразить заголовок страницы, используя определенное значение в результате, но не могу. Из-за цикла вместо того, чтобы значение отображалось только 1 раз в заголовке, оно отображается столько раз, сколько возвращаемых записей.
3. Ваше представление никогда не должно вызывать запросы к базе данных. Это очень явно противоречит разделению MVC (модель, представление, контроллер). Выполните подсчет в модели и передайте его в представление в виде числа.
4. Например, процедура принимает идентификатор сотрудника и возвращает кучу информации для этого сотрудника, скажем, 100 строк. Один из столбцов — это полное имя, и оно одинаково для каждой строки. Я просто хочу показать это в заголовке или названии, но только один раз вместо 100 раз.
5. @arserbin3 У меня не возникает проблем с получением количества. Мне нужно получить отдельное значение из определенного столбца. Помимо рекомендаций, как мне это сделать, если я выполняю EXEC proc … а не ВЫБИРАЮ ИЗ.
Ответ №1:
Нашел решение того, что я пытался сделать, а именно получить запись из определенной строки и столбца. Использовал это:
var db = Database.Open("MyDb");
var sql = @"EXEC myProcedure";
var result = db.Query(sql);
var header_value = result.ElementAt(0);
.
.
.
@header_value.ColumnName