如何在asp.net mvc视图中显示数据库记录

本文关键字:显示 数据库 记录 视图 mvc asp net | 更新日期: 2023-09-27 18:17:41

NET MVC与c#,你如何传递一些数据库记录的视图和表的形式显示它们?

我需要知道如何从已返回到SqlDataReader对象的数据库中传输/传递一些记录行,并将该对象传递给视图,以便我可以使用foreach在视图中显示对象包含的所有记录。

下面的代码是我想要做的。但是这行不通。

控制器:

public ActionResult Students()
{
    String connectionString = "<THE CONNECTION STRING HERE>";
    String sql = "SELECT * FROM students";
    SqlCommand cmd = new SqlCommand(sql, connectionString);
    using(SqlConnection connectionString = new SqlConnection(connectionString))
    {
        connectionString.Open();
        SqlDataReader rdr = cmd.ExecuteReader();
    }
    ViewData.Add("students", rdr);
    return View();
}
视图:

<h1>Student</h1>
<table>
    <!-- How do I display the records here? -->
</table>

如何在asp.net mvc视图中显示数据库记录

1。首先创建一个Model,它将保存记录的值。例如:

public class Student
{
    public string FirstName {get;set;}
    public string LastName {get;set;}
    public string Class {get;set;}
    ....
}

2。然后将阅读器中的行加载到列表或其他东西中:

public ActionResult Students()
{
    String connectionString = "<THE CONNECTION STRING HERE>";
    String sql = "SELECT * FROM students";
    SqlCommand cmd = new SqlCommand(sql, conn);
    var model = new List<Student>();
    using(SqlConnection conn = new SqlConnection(connectionString))
    {
        conn.Open();
        SqlDataReader rdr = cmd.ExecuteReader();
        while(rdr.Read())
        {
            var student = new Student();
            student.FirstName = rdr["FirstName"];
            student.LastName = rdr["LastName"];
            student.Class = rdr["Class"];
            ....
            model.Add(student);
        }
    }
    return View(model);
}

3。最后,在View中声明模型的类型:

@model List<Student>
<h1>Student</h1>
<table>
    <tr>
        <th>First Name</th>
        <th>Last Name</th>
        <th>Class</th>
    </tr>
    @foreach(var student in Model)
    {
    <tr>
        <td>@student.FirstName</td>  
        <td>@student.LastName</td>  
        <td>@student.Class</td>  
    </tr>
    }
</table>

如果您不需要使用sql reader,那么像这样的控制器不是更容易吗?

Controller.cs

private ConnectContext db = new ConnectContext();
public ActionResult Index()
   {
     return View(db.Tv.ToList());
   }

ConnectContext.cs

public class ConnectContext : DbContext
{
    public DbSet<Student> Student{ get; set; }
}

这样,您的连接字符串将在您的web中。