繁体   English   中英

如何在C#MVC 3的视图中循环数据库记录

[英]How do I Loop Database Records in the View of C# MVC 3

任何人都可以告诉我如何在我的视图中循环我的表格? 我的行是: disease_id, disease, and remedy.

我的数据库查询

我试图将所有结果都放入列表中,以便可以在视图中循环浏览它们。

        SqlCommand cmd = new SqlCommand("SELECT * FROM disease", m_DBCon);
        m_Reader = cmd.ExecuteReader();

        List<string> record = new List<string>();
        while (m_Reader.Read())
        {
            string s = Convert.ToString(m_Reader[0]);
            record.Add(s);
        }

        ViewBag.Record = record;

我的观点

我想在表中循环数据库记录

@{
    ViewBag.Title = "Dashboard";
    List<string> record = ViewBag.Record;
}

我不断收到一个空字符串。 我以为我必须做类似s [“疾病”],s [“补救”}的事情,但s是一个字符串,所以它没有所有这些字段。

    @{
        foreach (string s in record)
        {
            <tr>
              <td>@s</td>
            </tr>
        }
    }

任何人都可以给我一些建议:)

我首先要指出的是,首先创建一个DiseaseResult类可能更容易。 这样:

public class DiseaseResult
{
  public int DiseaseId { get; set; }
  public string Disease { get; set; }
  public string Remedy { get; set; }
}

这让事情变得更容易一些。 现在你可以说:

public ActionResult Index()
{
    SqlCommand cmd = new SqlCommand("SELECT [disease_id], [disease], [remedy] FROM disease", m_DBCon);
    m_Reader = cmd.ExecuteReader();

    List<DiseaseResult> record = new List<DiseaseResult>();
    while (m_Reader.Read())
    {
        record.Add(new DiseaseResult() { DiseaseId = m_Reader[0], Disease = m_Reader[1], Remedy = m_Reader[2]);
    }

    return View(record);
}

之后在你的视图中:

@model List<DiseaseResult>

@foreach(DiseaseResult item in Model)
{
   <div>@item.Disease</div>
}

这三个项目disease_iddiseaseremedy ,是他们的值或列? 你在desease表中有多少条记录? 似乎您将“记录”与“来自不同记录的字段值”的集合混淆了。 尝试

string s = Convert.ToString(m_Reader[0]) + "," + Convert.ToString(m_Reader[1]) + "," + Convert.ToString(m_Reader[2]);

我在相同环境下的查看代码如下:

<% foreach (var item in Model.Item)
{ 
%>
  <tr>
    <td>
      <%: item.Id %>
    </td>
    <td>
      <%: item.Name %>
    </td>
  </tr>
<%
}
%>

使用var而不是string允许从记录中提取的对象是隐式而非强烈的。 我相信这是您在上面的代码中遇到的问题。 有关更多信息,请查看以下链接:

http://msdn.microsoft.com/en-us/library/bb383973.aspx

我希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM