Как передать DataTable для просмотра в виде кода JSON/XML?

Я новичок в среде.NET и пытаюсь написать простое приложение MVC для чтения данных учащихся и отображения их конечному пользователю. Я подключился к базе данных, используя SQLOLEDB, код которого я вставил ниже. Данные, полученные из запроса, были сохранены в переменной типа DataTable. Теперь я хочу увидеть содержимое результата запроса в виде вывода JSON, для которого у меня есть смутное представление о том, что мне нужно создать новый контроллер. Но я не могу выйти за рамки этого пункта.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;

namespace Database.model
{
public class student
{
    public int id { get; set; }
    public string name { get; set; }
    private string age { get; set; }

    public DataTable GETSQLServerData()
    {
        //Connect
        var _connectionobject = new SqlConnection();
        _connectionobject.ConnectionString = @"Provider=SQLOLEDB;Data Source=PHYSICS\SQLEXPRESS;Persist Security Info=true;Initial Catalog=master;Integrated Security=True; provider = SQLOLEDB;";
        _connectionobject.Open();
        //Command
        var _commandObject = new SqlCommand();
        _commandObject.CommandText = "select * from dbo.tblStudent";
        //Execute 
        _commandObject.ExecuteReader();
        //Data
        var _dataReader = _commandObject.ExecuteReader();

        DataTable obj2 = new DataTable();
        obj2.Load(_dataReader);
        _connectionobject.Close();
        return obj2;


    }

}
}                          

Буду очень признателен, если кто-нибудь сможет мне помочь в этом

1 ответ

Вы можете преобразовать объект данных в объект POCO

Как мне преобразовать данные в объект POCO в Asp.Net MVC?

затем верните этот объект POCO обратно в браузер.

Лучше всего было бы создать класс, который будет хранить данные ученика и возвращать этот объект класса вместо таблицы данных, например, так.

// you student model class
public class Student
{
    // public properties of student...
}

В вашем классе доступа к данным заполните этот список объектов ученика и вернитесь к методу действия MVC.

//then in your MVC action method 

IEnumerable<Student> students = GETSQLServerData();
return this.Json(students , JsonRequestBehavior.AllowGet);

Несколько замечаний о вашем коде:

1- Избегайте использования оператора SQL в вашем коде C#, переключитесь на хранимую процедуру.

2- Используйте слой Data Model и создайте класс Student, чтобы определить модель Student.

3- Используйте слой доступа к данным для вызова процедуры SQL Stored.

4- Внедрить зависимости, чтобы избежать тесно связанных классов.

Надеюсь это поможет!

Другие вопросы по тегам