[英]How do I retrieve text from database in list form (SQL Server & ASP.NET MVC)
我在數據庫中插入了以下段落:
審查當前系統。提出改進系統的想法,包括成本建議。 與分析師,設計師和員工緊密合作。 產生詳細的規范並編寫程序代碼。 在上線之前,請在受控的真實環境中測試產品。 為用戶准備培訓手冊
一旦系統啟動並運行,便對其進行維護。
我想這樣檢索它:
•審查當前系統
•提出系統改進的想法,包括成本建議
•與分析師,設計師和員工緊密合作
•制定詳細的規范並編寫程序代碼
•上線之前在受控的真實環境中測試產品
•為用戶編寫培訓手冊
•在系統啟動並運行后對其進行維護
在ASP.NET MVC前端中。
在不了解有關應用程序設置,數據庫架構以及您實際上需要幫助的確切部分的情況下; 您會得到一個更通用的答案,該答案可能與您的體系結構不匹配。
第1部分將是我為此使用的數據庫表
CREATE TABLE dbo.PageContent (
PageID INT IDENTITY(1,1) NOT NULL,
PageText NVARCHAR(MAX) NULL DEFAULT(''),
CONSTRAINT PK_PageContent_PageID PRIMARY KEY CLUSTERED ([PageID] ASC) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT PageContent(PageText) VALUES ('Reviewing cur... and running.')
GO
第2部分將是(數據)模型。 沒有提到ORM或DB模式,這意味着我是用ADO編寫的。 請注意,由於重載方法僅檢索1個數據值,因此我實現了Scalar
方法以節省Reader
的開銷
public class PageContent {
public int PageID { get; set; }
public string PageText {get; set; }
public PageContent() {}
public PageContent (int ContentID) {
PageID = ContentID;
using (SqlConnection conn = new SqlConnection(YourConnString)) {
using (SqlCommand cmd = new SqlCommand("SELECT PageText FROM PageContent WHERE (PageID = @PageID)", conn);
cmd.CommandType = CommandType.Text;
cmd.Paramaters.AddWithValue("@PageID", PageID);
try {
conn.Open();
PageText = (string)cmd.ExecuteScalar();
}
catch (Exception ex) {
PageText = "An Error has occurred";
// your error handling here
}
finally { conn.Close(); }
}
}
}
}
第3部分將是Controller和一個基本的Action,用於根據ID獲得正確的模型。 除非您要進行排序或其他操作,否則無需使用List<>
,您可以只使用數組並節省一些開銷。
public ActionResult RetrievePageText(int ContentID) {
PageContent PC = New PageContent(ContentID);
string[] PageLines = PC.PageText.split('.');
return View(PageLines);
}
第4部分,結束於View。 您將需要編寫自己的標題行和HTML。 這將使用ASPX視圖引擎,如果您是Razor或其他人,則需要對其進行轉置。
<ul>
<% foreach (string line in Model) { %>
<li><% =line %></li>
<% } %>
</ul>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.