跳到主要內容

MVC5 透過 Entity Framework 連接資料庫顯示內容做法

介紹透過 Entity Framework 讀取資料庫內容,說明整個 Model & View 如何直接對現在 DB Table 做欄位 ORM (Object Relational Mapping),範例中抓取資料庫欄位 MrkId(股票代號)、StkName(股票代號)後,顯示於網頁畫面。

Step 1. 在專案 Models 中建立資料庫 .edmx
選擇 ADO.NET 實體資料模型
選擇ADO.NET實體資料模型

選擇第一個 EF(也就是 Entility Framework)

決定資料庫連線及在 Web.Config 中是否加入ConnectionString 名稱




選擇所要對應到的資料庫 Table




從方案總管中就可以看到完成的 edmx
Step 2. Controller 中這裡為使用 HomeController.cs => Index Action加入:

 public class HomeController : Controller
    {
        public ActionResult Index()
        {
            List<Models.TS_StockTickData> result = new List<Models.TS_StockTickData>();
using (Models.TSDATAEntities2 tse = new Models.TSDATAEntities2())

                result = (from s in tse.TS_StockTickData select s).ToList();   // 將所有抓到的 Row 內容寫入到 List( ) 中回傳給 View 
                return View(result);
            }
        }

Step 3. View 中的 Index.cshtml 加入:

@model IEnumerable<MVCApplication1.Models.TS_StockDataTemp>

 <table>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.MrkId) // 取出股票代號
</td>
<td>
@Html.DisplayFor(modelItem => item.StkName)  // 取出股票名稱 
</td>
</tr>
}
</table>
畫面結果如上右半部


留言

這個網誌中的熱門文章

C# 中 List 複製內容到另一個 List 的幾種方法

簡單又實用 ^ ^ * 第一種透過 .ToList( ) 方法:  List<string> List1 = new List<string>();  List<string> List2 = new List<string>();  List1.Add("A");  List1.Add("B");  List1.Add("C");  List1.Add("D"); List2 = List1.ToList( ); * 第二種方式在建立物件時複製前一個 List  List<string> List1 = new List<string>();  List1.Add("A");  List1.Add("B");  List1.Add("C");  List1.Add("D"); List<string> List2 = new List<string>(List1); * 第三種方法新的List 中使用 AddRange( ) 方法  List<string> List1 = new List<string>();  List<string> List2 = new List<string>();  List1.Add("A");  List1.Add("B");  List1.Add("C");  List1.Add("D"); List2.AddRange(List1); 另可使用 List1.GetRange(Start, End) 來複製不固定大小(但不包含End)的內容

無效的回傳或回呼引數。已在組態中使用 或在網頁中使用 <%@ Page EnableEventValidation="true" %> 啟用事件驗證

寫手機網頁 使用 Client 端的 jquery mobile 時 button 都會比較長,但改用 asp::Button 時發現按鈕大小卻變了,W3C 建議使用 jquery mobile Button 時,儘量使用<a href="#" data-role="button" > ,因此改用 asp::LinkButton 後果然解決了 Button 長度問題,只可惜按下去後,依然有點淚流滿面如下。後來拜求 google 大大,找到了原因及解法如下: 開啓了資料回傳安全驗證功能(EnableEventValidation 為 true),導致錯誤訊息產生。如果必須要驗證資料,則必須使用 ClientScriptManager.RegisterForEventValidation 註冊控制項或直接在頁面.aspx上端 <%Page ... EnableEventValidation = "false"> ,那如果全部頁面都不想驗證,那請在 web.config 下找到 <configuration>      <system.web>       <pages  enableEventValidation ="false" >        ....       </page>       .... </configuration> 嗯  博大精深  ^^ 收工回家去............................

JQUERY 中使用 val( ) 或 text( ) 來改變內容

就字眼看來兩者差別不太... 簡單的說 TextBox 利用 val( ),而其它的控制項元件則用 text( ) 底下範例可跑跑看或ID 對調實驗,很快就看出差別了... HTML: <input type="text" id="txtinupt" value="TEXTBOX"/> <label id="lblid">LABEL</label> <button onclick="TestFunc()">OK</button> JS: function TestFunc(){   $('#lblid').text("12345")   $('#txtinput').val("99999");   $('#lblid').focus();   console.log('Function End') }