2009-08-12 134 views
-2

我有一個asp.net mvc應用程序,我需要連接到數據庫我已經看到一個教程視頻連接到數據庫使用嚮導通過添加數據庫連接並確定數據庫並添加模型,但我需要知道我是否可以使用連接字符串並查詢數據庫或調用DB中的過程?使用MVC連接到數據庫

我需要任何教程或一步一步的文章,描述如何連接到數據庫沒有嚮導和調用過程和查詢表。

在此先感謝,我在MVC

一個begineer
+0

您是否使用了OR/M如亞音速的LINQ to SQL,NHibernate的,等等?有關更多詳情,請參閱下面的答案。 – andymeadows 2009-08-13 04:49:11

+0

Ahmy - 您是否熟悉通過代碼訪問數據庫(而不是嚮導)?如果你通常使用嚮導來完成所有的事情,那麼ASP.NET MVC可能不是你的一杯茶。如果你對各個層次感到不舒服,我建議把你的控制器類中的所有代碼作爲示例應用程序。即使它被稱爲MVC,你只需要Controller和View來組合一個有效的演示。 – 2009-08-13 17:15:48

回答

1

是的,你可以(谷歌在ado.net教程ado.net),但它不是MVC方式。 MVC的方式是使用某種ORM(對象關係映射),如NHibernate,Subsonic或Linq for SQL。

+1

使用ORM或某種中間件的不是MVC的方式,這是偷懶的方法(我使用它們,因爲我不想編寫了定期ado.net)。 – Min 2009-08-12 15:53:28

+0

你搞錯了,我需要的是知道把連接字符串放在哪裏,就像在過去的web.config中一樣?其次,我如何從模型中調用一個過程並獲取結果數據?我不知道如何在MVC中做到這一點,而不是如何訪問數據庫! 你長了我的問題錯了,我用Google搜索這和在哪裏放置在訪問數據庫的代碼,我怎樣才能得到所得到的數據,在視圖中顯示 – Ahmy 2009-08-12 16:00:25

0

你可以把你的連接字符串放在配置中,就像你習慣的一樣。

您可以像調用任何.Net應用程序一樣調用過程。 @ svinto關於使用ORM的建議是另一種做事方式,值得一看。許多ASP.Net MVC的優秀示例都使用ORM技術。

如果您不想沿着這條路線走下去,您可能會從創建您從MVC應用程序引用的獨立類庫項目中受益。你的類庫項目可以作爲在那裏你處理來電DB數據訪問層(DAL),等等......然後

你的控制器可以調用您的DAL和處理方法來填充實體的意見。

+0

感謝mr.grenade但把連接字符串中網在沒有明確的答案.config如何從模型中調用我的過程?我必須添加一個包含調用過程方法的類嗎?如果我在想什麼是對的,並且我已經在模型文件夾中創建了一個類,那麼如何讓控制器調用此類並獲取數據並將其傳遞給要顯示的視圖?真的我太困惑,我討厭MVC在開始時,因爲這個話題 – Ahmy 2009-08-12 16:09:57

+0

在更短的幫助如果你想享受生活的簡單的一面,你真的會很好地遵循@ svinto的職務的建議。 – grenade 2009-08-12 16:12:17

+0

不,我需要知道如何從模型調用過程是我的想法正確創建一個類,其中包括方法調用數據庫程序?我需要明確的幫助,不要笑我的工作失敗,我不知道如何恢復希望,你明白我的需要 – Ahmy 2009-08-12 16:14:50

0

Ahmy,我想給將是最好的建議你開始使用MVC框架,看看到了MVC模式和領域驅動設計背後的原理開發之前。

具體來說,看看倉庫模式等

您仍然可以添加連接字符串到Web.config中塊和訪問它們,你會在web表單項目都做了,所有的Asp.net後MVC基於webforms。如果你按照預期的方式利用MVC,那麼你可能不會真的想這樣做,而是關於分離問題。

www.asp.net有一些很棒的介紹。值得關注的例子。

+0

我已經從那裏下載視頻,並看着它,因爲我在我的問題中提到,但他們正在連接到數據庫通過嚮導通過創建數據庫和添加表與記錄和查詢這些記錄,但我需要的是數據庫已經存在,我需要調用過程,並不知道如何做到這一點在模型中以及如何獲取數據從控制器中的模型,把它放在適當的視圖?????? 感謝UR關注希望,因爲我從MVC – Ahmy 2009-08-12 16:12:45

+0

無聊U將回復我,請更可能你看了有使用LINQ到SQL ORM工具,如上面提到的任何視頻。如果你有Visual Studio,你應該可以做同樣的事情。使用服務器資源管理器指向數據庫,然後使用Linq to SQL來構建您的ORM模型。 – Lewis 2009-08-12 16:21:34

+0

...如果你遇到的問題是與您的模型和視圖等的設計,那麼你所遇到的問題是不是一個真正的數據庫連接之一,它最好的MVC模式本身讀了。我希望有所幫助。 – Lewis 2009-08-12 16:23:33

1

如何在沒有嚮導和調用過程和查詢表的情況下連接到數據庫。

要調用的程序(這裏將不返回任何結果,只是執行一些動作):

using (SqlConnection connection = new SqlConnection(connectionString)) 
{ 
    connection .Open(); 
    using(SqlCommand command = connection.CreateCommand(nameofthestoredprocedure)) 
    { 
     command.CommandType = CommandType.StoredProcedure; 
     command.Parameters.AddWithValue("@someparameter", somevalue); 
     maCommande.ExecuteNonQuery(); 
    } 
} 
+0

Mr.Gregoie在哪裏放這段代碼(激勵我不需要這段代碼)? 我需要知道我將如何與模型,視圖和控制器集成?我需要創建一個控制器並把這個代碼放在裏面嗎?或者你必須在代碼中創建一個類後將這段代碼放入模型中? 請幫助我,並非常感謝您的關注 – Ahmy 2009-08-12 17:05:17

+1

您必須將此代碼放入數據訪問層的類中。通常,您將擁有:查看<-->控制器<-->存儲庫<--> DataAccess <--> Storedproc <-->表,視圖和控制器交換模型,數據訪問,存儲庫,控制器交換一些數據實體 – Gregoire 2009-08-12 17:32:11

2

我毫不猶豫地對此作出迴應,但你已經看到的每部影片很可能使用OR/M生成模型和DAL。生成的DAL可能會將您的調用封裝到您詢問的存儲過程中。

的關鍵是 - 這裏的原因你沒有得到你要的答案 - 每個OR/M將不得不從檢索數據和將數據插入到數據庫的不同方法。如果您使用Entity Framework,Linq to SQL,SubSonic,NHibernate或任何其他OR/M,如何使用OR/M從數據庫檢索數據將會有所不同。

所以,問題在於你。你在使用OR/M嗎?如果是這樣,哪一個?如果不是,那麼您將使用標準的ADO.NET調用來檢索和存儲數據。這也反映在我對你原來的問題的評論中。

0

嘗試下載NerdDinner,或更好的... ContactManager迭代1(本教程直接回答你的Q)。那些應該給你一個關於如何處理數據庫訪問的好主意。雖然我不建議看像Oxite或MS StoreFront,因爲這些更復雜一些。

具體回答你的問題:連接字符串,就像在ASP.NET中,可以在你的web.config去或硬編碼在應用程序中。