Как отобразить несколько таблиц в представлении ASP. NET MVC из хранимой процедуры вывода нескольких таблиц - PullRequest
0 голосов
/ 19 апреля 2020

Я пытаюсь отобразить две таблицы в моем представлении ASP. NET MVC из хранимой процедуры, которая возвращает 2 таблицы. Когда я попытался получить доступ к результату хранимой процедуры, я смог получить только первый набор результатов, а не второй.

В результате хранимой процедуры обе таблицы получены путем запроса нескольких таблиц в базе данных. , Хранимая процедура сохраняется как testsp

CREATE PROCEDURE [testsp] 
AS
BEGIN
    SELECT TOP 20 CONCAT(col1,' : ', col2) AS 'cols'
    FROM table1 
    WHERE CreatedBy IN (SELECT col11 FROM table2 
                        WHERE col12 = 456 AND Curr = 1)
    ORDER BY CreatedAt DESC

    SELECT TOP 20 CONCAT(col1,' : ', col2) AS 'cols'
    FROM table1 
    WHERE CreatedBy = (SELECT col1 FROM table2 WHERE col12 = 123)
    ORDER BY CreatedAt DESC
END

После создания хранимой процедуры я включил хранимую процедуру в модель и попытался получить к ней доступ в контроллере, используя следующий код:

public class TestController : Controller
{
    public ActionResult Index()
    {
        DBEntities r = new DBEntities();
        var data = r.testsp().ToList();
        ViewBag.tests = data;
        return View();
    }
}

В представлении я попытался отобразить его, используя следующий код:

<table id="data" class="table table-bordered table-striped table-responsive">
    <tbody>
        @foreach (var item in ViewBag.tests)
        {
            <tr>
                <td>
                    @item
                </td>
            </tr>
        }
    </tbody>
</table>

При этом отображалась первая, а не вторая таблица.

Как получить доступ к обеим таблицам из сохраненного Результат процедуры, в контроллере и отображение их в виде?

1 Ответ

0 голосов
/ 19 апреля 2020

SP не может иметь просто два выбора. SP завершит работу после выполнения первой команды выбора. Три варианта:

  1. Используйте объединение, чтобы объединить оба выбора.
  2. Определите REFCUR и верните курсор из SP
  3. Для более продвинутого решения разработайте UDT (определяемые пользователем типы).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...