Как преобразовать модель MVC в DATASET? - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь преобразовать одну из моделей моего проекта в набор данных.Перед отправкой dt для возврата мне нужно привести его к Person, иначе он выдаст бессмысленный вывод.

Но я не уверен, что сначала я приведу к своей модели (Person - each properties) перед возвратом или мне нужноПримените datatable dt к моей модели?

 public ActionResult Index() {

            DataModel dt = new DataModel();



            using (SqlConnection sqlcon = new SqlConnection(connectionString)) {
                sqlcon.Open();
                SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM Person", sqlcon);
                sqlDa.Fill(dt);
            }

            return View(dt);
        }

Индекс:

@model System.Data.DataTable

@{
    Layout = null;
}

<table class="table table-bordered table-striped table">
    <tr>
        <th>Name</th>
        <th>Surname</th>
    </tr>
    @for (int i = 0; i < Model.Rows.Count; i++)
    {
        <tr>
            <td> @Model.Rows [i][1] </td>
            <td> @Model.Rows [i][2] </td>

        </tr>
    }
</table>
<hr>
<a href="@Url.Action("Create","Renter")">Add Person</a>

Может ли кто-нибудь мне помочь.

Спасибо!

1 Ответ

1 голос
/ 05 мая 2019

Вам необходимо заполнить данные таблицы для набора данных, используя sqlDa.Fill(dt, "Person"); и установить для просмотра значение return View(dt.Tables["Person"]);

. Вы можете изменить свой код на

public ActionResult Index()
        {

            DataSet dt = new DataSet();



            using (SqlConnection sqlcon = new SqlConnection("ABC"))
            {
                sqlcon.Open();
                SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM Person", sqlcon);
                sqlDa.Fill(dt, "Person");
            }

            return View(dt.Tables["Person"]);
        }

и изменить свой cshtml на

<table class="table table-bordered table-striped table">
    <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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...