[英]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_id
, disease
和remedy
,是他們的值或列? 你在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.