首页 > 解决方案 > ASP.NET Core 在页面上显示数据库中的所有行

问题描述

我正在尝试使用 ASP.NET Core MVC 在网站上显示数据库中的每一行,但我找不到任何有关如何执行此操作的来源。这是我尝试做的,但我卡住了:

public IActionResult Index()
        {
            connection.Open();
            command.Connection = connection;

            command.CommandText = "SELECT COUNT(*) FROM Users;";
            var rows = Convert.ToInt32(command.ExecuteReader());
            command.Dispose();

            List<UserModel> users = new List<UserModel>();

            for(int i = 0; i <= rows; i++)
            {
                users.Add(new UserModel(ID, "", ""));
            }

            command.CommandText = "SELECT * FROM Users";
            dataReader = command.ExecuteReader();




            return View();
            
        }

我的数据库的结构是这样的:ID、用户名、密码、密码哈希,但我只想显示用户名开头。

如果您有任何来源或想法,将非常感激!预先感谢!

最好的问候马克斯

标签: c#sqlasp.net-coreasp.net-core-mvc

解决方案


如果您真的想使用原始 ADO.NET,那么好吧,我将向您展示一个示例。

public IActionResult Index()
{
    using var connection = new SqlConnection(_connectionString);
    connection.Open();

    using var command = new SqlCommand();
    command.Connection = connection;
    command.CommandText = "SELECT Username FROM Users;";

    using var reader = command.ExecuteReader();

    List<UserModel> users = new List<UserModel>();

    while (reader.Read())
    {
        string name = reader.GetString(0);
        users.Add(new UserModel { Name = name });
    }

    return View(users);
}

您不需要向数据库发出两个请求——这非常浪费。

您只想显示用户名,因此只请求它就足够了。


推荐阅读