2010-02-02 96 views
1

我剛開始一個新的Web應用程序與asp.net mvcsql server 2005 ...在我的網頁表單的應用到目前爲止我用ADO.NET ...我想在我的asp.net MVC apllication一樣...如何在asp.net mvc中使用sql server 2005存儲過程?

我有sql server 2005數據庫與所有的stored procedures ...現在我想在我的MVC應用程序中使用這些存儲過程......我不使用任何ORM ......我想使用ADO.NET ..

任何樣品controller調用一個model其使用stored procedure並將Dataset返回到controller然後th e controller to View顯示記錄...任何建議...

+0

建議:我們添加標籤ADO.Net並刪除asp.net-mvc。 – 2010-02-02 07:01:54

+0

@Moron我想用它與asp.net MVC – 2010-02-02 07:02:41

+3

使用ADO.NET並調用存儲過程不是你的主要問題嗎?如果你在上面使用asp.net-mvc,它真的很重要嗎? – 2010-02-02 07:08:50

回答

2

我會重新開始使用服務或存儲庫,負責使用控制器發送到視圖的存儲過程中的數據填充模型。我不確定爲什麼要避免使用ADO.NET的ORM。現實是實體框架,Linq2Sql,SubSoncic和NHibernate是非常成熟和可靠的。

這是我放在一起的一個快速示例...它使用SqlConnection和SqlCommand調用存儲過程...將此代碼放在控制器調用以獲取模型的單獨類中。

public BlogEntry GetBlogEntry(int blogId) 
    { 
     SqlConnection sqlConnection = new SqlConnection(); 
     sqlConnection.ConnectionString = MyConnectionString; 
     SqlCommand sqlCommand = new SqlCommand(); 
     sqlCommand.CommandText = "mySproc"; 
     sqlCommand.Connection = sqlConnection; 
     sqlConnection.Open(); 
     var reader = sqlCommand.ExecuteReader();. 
     var blogEntry = new BlogEntry(); 

     while (reader.Read()) 
     { 
      //do something to fill your model... 
     } 
     return blogEntry; 
    } 
+2

應該有一個finally塊,連接和閱讀器關閉。 – 2010-02-02 08:46:12

+0

同意!我沒有測試這個或添加適當的異常處理。我不認爲這是一個複製粘貼prod準備實施。 – RSolberg 2010-02-02 09:31:27

相關問題