Как загрузить данные из хранилища данных и вернуть json для ajax данных - PullRequest
0 голосов
/ 24 февраля 2020

Этот код для загрузки данных члена

public ActionResult LoadData()
{
    string query = "SELECT NAME, DATELASTUSE, CREATE_ID FROM MEMBER";

    using (OdbcConnection c = new OdbcConnection(Connection.Conn()))
    {
        OdbcCommand cmd = new OdbcCommand(query, c);
        c.Open();

        OdbcDataReader dr = cmd.ExecuteReader();

        var dataTable = new DataTable();
        dataTable.Load(dr);

        return **json for ajax** ;
    }
}


$(document).ready(function () {
    var oTable = $("#PassTable").DataTable({            
    "ajax": {
            "url": "/Home/LoadData",
            "type": "GET",
            "datatype": "json"
            },
            "columns": [
                { "data": "NAME", "autowidth": true },
                { "data": "DATELASTUSE", "autowidth": true },
                { "data": "CREATED_ID", "autowidth": true },
            ],
            "language": {
                "emptytable": "No data found, Please click on <b>Add New</b> button"
            }
        });
    });

<table id="PassTable" class="table table-border table-hover" style="background-color:white;" width="100%">
    <thead>
        <tr>               
            <th>Name</th>
            <th>Date</th>
            <th>Created_By</th>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>

LoadData is From HomeController

Я не знаю, как вернуть datareader в json.

Я не понимаю Поток просто попробуйте использовать ошибку -> return Json (new {data = dataTable}, JsonRequestBehavior.AllowGet);

но ошибка Gv me.

Пожалуйста, помогите.

Спасибо.

1 Ответ

0 голосов
/ 28 февраля 2020

Ваш метод действия должен закончиться как

        public ActionResult LoadData()
        {
            string query = "SELECT LastName,FirstName,PhoneNumber,Skype,Email,City FROM Contacts;;

            using (OdbcConnection c = new OdbcConnection(Connection.Conn()))
            {
                OdbcCommand cmd = new OdbcCommand(query, c);
                c.Open();

                OdbcDataReader dr = cmd.ExecuteReader();

                var dataTable = new DataTable();
                dataTable.Load(dr);

                var lst = dataTable.AsEnumerable()
                        .Select(r => r.Table.Columns.Cast<DataColumn>()
                                .Select(c => new KeyValuePair<string, object>(c.ColumnName, r[c.Ordinal])
                               ).ToDictionary(z => z.Key, z => z.Value)
                        ).ToList();
                return Json(lst, JsonRequestBehavior.AllowGet);
            }
        }

Я взял это решение от { ссылка }.

Я не знаю больше о Ajax Datable, поэтому я не буду помогать с этой частью.

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