Как передать 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- Внедрить зависимости, чтобы избежать тесно связанных классов.
Надеюсь это поможет!