1

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


    }

}
}                          

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

4

1 回答 1

0

您可以将数据表对象转换为 POCO 对象

如何在 Asp.Net MVC 中将数据表转换为 POCO 对象?

然后将该 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- 使用数据访问层调用 SQL 存储过程

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

希望这可以帮助!

于 2017-02-27T10:35:21.427 回答