簡體   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