如何发送 sql 查询的结果(行)以在 ASP.NET 中的 table 中查看和显示

How do I send results(rows) of sql query to view and display in table in ASP.NET

我在控制器中有这个方法:

public ActionResult Report()
    {
        string sql = System.IO.File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "../00002165_Report.sql");

        using (NpgsqlConnection con = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=6060;Database=hotelreal;"))
        {
            NpgsqlCommand cmd = new NpgsqlCommand(sql, con);
            con.Open();
            NpgsqlDataReader reader = cmd.ExecuteReader();
            try
            {
                while (reader.Read())
                {
                    Console.WriteLine(String.Format("{0}, {1}, {2}", reader["fName"], reader["lName"], reader["preference"]));
                }
            }
            catch (Exception e)
            { 

            }
        }

        return View();
    }

如您所见,它执行 sql 查询并将结果写入控制台。但是我想做的是这样的:

将查询返回的结果保存在一个数组中。发送此数组以在 table.

中查看和显示它

我该怎么做?

制作一个模型 class 例如 Report 并给出 3 个属性,即 FName、LName 和 Preference

public class Report
{
  public String FName {get; set;}
  public String LName {get; set;}
  public String Preferences {get; set;}
}

从数据库中收集数据并将其分配给列表

List<Report> Reports=new List<Report>();
Report r;
while (reader.Read())
{
  r=new Report();
  r.FName=reader["fName"];
  r.LName=reader["lName"];
  r.Preferences=reader["preference"];
  Reports.Add(r);
}

最后将列表传递给代码最底部的视图

return View(Reports);

我只是说创建一个模型如下:

public class ReportDataModel
{
   public string fName{get; set;}
   public string lName{get; set;}
   public string preferences{get;set;}
}

接下来在您的控制器中创建该模型的列表,如下所示:

public ActionResult Report()
{
     string sql = System.IO.File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "../00002165_Report.sql");
     List<ReportDataModel> model=new List<ReportDataModel>();
     using (NpgsqlConnection con = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=6060;Database=hotelreal;"))
     {
            NpgsqlCommand cmd = new NpgsqlCommand(sql, con);
            con.Open();
            NpgsqlDataReader reader = cmd.ExecuteReader();
            try
            {
                while (reader.Read())
                {
                    model.Add(
                       new ReportDataModel() {
                           fName = reader["fName"], 
                           lName = reader["lName"],
                           preferences= reader["preference"]
                       });
                }
            }
            catch (Exception e)
            { 

            }
     }

     return View(model);
}

在您的视图中创建 IEnumerable 模型列表并通过循环显示如下:

@model IEnumerable<ReportDataModel>

@foreach(var report in Model)
{
    //display report.fName
    //display report.lName
    //display report.preferences

}