【问题标题】:How can I pass DataTable to view as JSON/XML code?如何传递 DataTable 以查看 JSON/XML 代码?
【发布时间】:2017-02-27 10:29:50
【问题描述】:

我是 .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;


    }

}
}                          

如果有人能在这方面帮助我,我将不胜感激

【问题讨论】:

    标签: c# json model-view-controller controller sqloledb


    【解决方案1】:

    可以将datatable对象转换成POCO对象

    How do I convert a datatable into a POCO object in 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- 避免在 C# 代码中使用 sql 语句,切换到存储 过程。

    2- 使用数据模型层并创建学生类来定义学生 型号。

    3- 使用Data access layer调用SQL Stored proc

    4- 注入依赖项以避免紧密耦合的类。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2017-01-11
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2011-09-14
      相关资源
      最近更新 更多