Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net mvc视图中显示数据库记录_C#_Asp.net Mvc_Sqldatareader_Sqlclient - Fatal编程技术网

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

C# 如何在asp.net mvc视图中显示数据库记录,c#,asp.net-mvc,sqldatareader,sqlclient,C#,Asp.net Mvc,Sqldatareader,Sqlclient,使用ASP.NET MVC和C,如何将一些数据库记录传递给视图并以表格形式显示它们 我需要知道如何从数据库传输/传递已返回到SqlDataReader对象的一些记录行,并将该对象传递到视图,以便使用foreach在视图中显示该对象包含的所有记录 下面的代码是我正在尝试做的。但它不起作用 控制员: public ActionResult Students() { String connectionString = "<THE CONNECTION STRING HERE>";

使用ASP.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>
一,。首先创建一个保存记录值的模型。例如:

二,。然后将读卡器中的行加载到列表或其他内容:


如果您不必使用sql读取器,那么拥有这样的控制器不是更容易吗

控制器

ConnectContext.cs


这样,您的连接字符串将出现在web.config中,并且View+模型将保持不变。

它不起作用-设计不好-在使用子句处理连接后,您无法从SqlDataReader获取数据。你读过一些MVC/Razor教程吗?是的,我知道它的结构不好。这就是为什么我需要从你们这些有经验的人那里知道,分享你们知道的最好的方法我刚开始使用ASP.NET MVC和CThank you Giannis!从你的回答中,我相信这是解决我的问题的最好方法。我还从DotFunda.com上找到了这个链接,它解决了我的问题,与Gianinis所说的解决方案相同:谢谢你,这真的很有帮助。我甚至学会了如何使用这个模型!我很高兴这对你有帮助。你也可以接受它作为未来读者的答案,如果你愿意的话,也可以投票。我现在还不能投票。但当我在SOF有足够的声誉时我会这么做。谢谢
public class Student
{
    public string FirstName {get;set;}
    public string LastName {get;set;}
    public string Class {get;set;}
    ....
}
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);
}
@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>
private ConnectContext db = new ConnectContext();

public ActionResult Index()
   {
     return View(db.Tv.ToList());
   }
public class ConnectContext : DbContext
{
    public DbSet<Student> Student{ get; set; }
}