ASP.NET MVC: печать данных из DataTable, определенного в Controller, для просмотра - PullRequest
1 голос
/ 12 июня 2019

Я сохранил данные из таблицы базы данных в DataTable dt.DataTable заполняется в контроллере.Я пытаюсь получить данные DataTable на HTML-странице с подкачкой.Но почему-то данные не печатаются.Возможно, это связано с тем, что DataTable не получает доступ к представлению из контроллера.Вот что я сделал:

Контроллер:

int pageindex = 0; 

    public DataTable GetRecords()
    {

        pageindex = pageindex + 20;

        string constr = ConfigurationManager.ConnectionStrings["BOConnectionString"].ConnectionString;
        using (SqlConnection con = new SqlConnection(constr))
        {

            using (SqlCommand cmd = new SqlCommand("SELECT * FROM Invoice ORDER BY OrderId ASC OFFSET (@pageindex) ROWS FETCH NEXT 20 ROWS ONLY"))
            {
                cmd.Parameters.AddWithValue("@pageindex", pageindex);
                using (SqlDataAdapter sda = new SqlDataAdapter())
                {
                    cmd.Connection = con;
                    sda.SelectCommand = cmd;
                    using (DataTable dt = new DataTable())
                    {
                        sda.Fill(dt);

                        return dt;
                    }
                }
            }
        }
    }

Просмотр:

@using System.Data;
@using System.Data.DataTable;

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}


<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Reports</title>
</head>
<body>
<div>
        <a href=@Url.Action("GetRecords", "Records")>Print Records</a><br />


    <table border="1" cellpadding="5">
        <thead>
            <tr>
                @foreach (System.Data.DataColumn col in Model.Columns)
                {
                    <th>@col.Caption</th>
                }
            </tr>
        </thead>
        <tbody>
            @foreach (System.Data.DataRow row in Model.Rows)
            {
                <tr>
                    @foreach (var cell in row.ItemArray)
                    {
                        <td>@cell.ToString()</td>
                    }
                </tr>
            }
        </tbody>
    </table>

    </div>
</body>
</html>

Но это бросаетошибка: 'Ссылка на объект не установлена ​​на экземпляр объекта.'в Models.Columns.Я думаю, что это потому, что DataTable не заполняется (или ссылка).Как я могу это сделать?Как я могу дать ссылку на DataTable dt в Controller для представления?Что, если в контроллере было несколько DataTables?

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