2012-12-08 66 views
0

我正在使用Visual Studio 2012創建ASP.NET Web應用程序。我嘗試使用Getting Started with ASP.NET 4.5 Tutorial,但它創建了一個簡單的本地數據庫,所有查詢都直接寫入代碼中。我正在訪問的數據庫(SQL Server 2008)有十五個複雜的存儲過程,我真的不想重新輸入。使用現有SQL數據庫的ASP.NET Visual Studio 2012

使用DBContext例如,在教程中正常工作時,就可以抓取所有從表中的數據,但如何使用是在數據庫中的存儲過程?有人可以告訴我使用已經存在的存儲過程的最佳方式嗎?

到目前爲止我發現的所有問題(和答案)都是處理早期版本的Visual Studio,儘管我知道我可以使用這些(因爲VS 2012確實支持向後兼容),但我想充分利用我擁有的軟件,而不是使用VS 2010中的「最佳實踐」。

如果您可以告訴我如何使用現有的存儲過程,或者甚至指引我讀書,網站或任何其他任何東西否則會顯示給我,我會真正感激它!快樂的編碼!並感謝您的時間!

+0

在Google上搜索「sql server 2008調用存儲過程dbcontext」會返回大量鏈接。你是說你找不到有用的東西? – muratgu

+0

我試過使用一些像context.database.SQLQuery這樣的例子,但是沒有足夠的信息可以遵循(意思是它沒有列出所有的步驟),因爲當我輸入上下文時。 (數據庫不是列表中的可用選項)。我也嘗試使用我找到的IEnumerable示例,並且它引發了一個異常,表示DataReader不包含上下文中的所有字段。 – user1857303

回答

0

我不得不拼湊來自幾個不同來源的信息,但我能夠得到這個工作。下面是我的步驟(我可能會做的比我需要的,但它的工作),以防萬一它可以幫助別人:

  1. 添加一個類來我的項目稱爲MyContext,並告知這是一個的DbContext和它指出,現有數據庫是這樣的:(請注意,我已經在我的webconfig文件的完整連接字符串下

    { 公共類MyContext:的DbContext { 公共MyContext() :基地(」 name = MyDatabase「) { } } }

MyDatabase被在我的webconfig文件的連接字符串中引用我的數據庫的實際名稱替換。

  1. 我創建了一個叫做產品列表類公開只有由我的存儲過程返回的字段:

    { 公共類產品列表 { [ScaffoldColumn(假)] 公衆詮釋產品ID {得到;組; } [必需,StringLength(100),Display(Name =「Model」)] public string ProductName {get;組; }}

}

  1. 我實際上創建了一個用戶控件(.ascx),其是僅有DataReapeater。在代碼隱藏在控制,右beneather在Page_Load,我創建稱爲GetMostPopular一個方法:))

    公共的IEnumerable GetMostPopular( { 變種分貝=新MyContext(; IEnumerable result = db.Database。SqlQuery類( 「MostPopularProducts」); 返回結果; }

的<內部> IEnumerable和的SQLQuery的是我所創建的類的名字。它與我的存儲過程「MostPopularProducts」將返回的完全相同的字段。

  1. 然後在的DataRepeater,我用GetMostPopular爲 「SelectMethod」:


    「> <%#的eval( 「產品名稱」)%>

5.然後我拖放用戶控件ol到我希望顯示的頁面上。

我希望這可以幫助別人。快樂的編碼!

0

我建議你使用SqlClient,SqlCommand,SqlConnection ... 很容易,有機輸出!

相關問題