2012-03-03 16 views
7

當我嘗試使用WebMatrix啓動我的網站時,出現此錯誤。我有一個.cs文件,打電話給var db = Database.Open("dbase");名稱'Database'在當前上下文中不存在?

我在我的項目中有一個名爲「dbase」的數據庫。由於我使用WebMatrix啓動站點,因此我沒有web.config文件,也沒有使用WebMatrix包的導入,所以我不相信我應該需要它們。我是否需要將代碼封裝在Razor標籤中,如@{var db = Database.Open("dbase"); }?這也會導致我的錯誤。

這可能是什麼原因造成的?有沒有人有任何解決方案?

回答

5

您需要的WebMatrix.Data.dll集的引用(你可能有),你需要爲WebMatrix.Data命名空間using指令:

using WebMatrix.Data; 

這將導入Database類,所以你可以用它沒有完全合格的名稱。

爲什麼你認爲你不需要任何「進口」(由我假設你的意思是使用類似上面的指令),目前尚不清楚,但如果這是一個普通的C#文件,那麼你肯定需要他們(或者你需要完全限定類型名稱,這是醜陋的)。

+0

非常感謝您的迴應!我沒有意識到.cs文件與其他文件的區別。我現在添加了使用指令(對不正確的術語抱歉,我是一個Java程序員試圖學習) - 我現在得到錯誤'無法找到類型或名稱空間名'WebMatrix'(你是否缺少使用指令或裝配參考?)'。我假設我需要引用WebMatrix.Data.Dll?我怎樣才能做到這一點? – 2012-03-03 15:26:48

+0

@SimonKiely:我自己並沒有使用過WebMatrix,但我想*它已經在那裏了。如果項目中有「項目引用」部分,請查找「添加引用」。 – 2012-03-03 15:30:18

+0

謝謝你的迴應。我找不到像這樣的參考。我不相信我應該需要這個;它應該在那裏,並且代碼在.cshtml文件中工作。我很困擾。 – 2012-03-03 16:15:38

7

我在瀏覽ASP.NET上的w3schools時遇到了這個問題。

基本上,以上的答案是正確的:你需要的組件(DLL)WebMatrix.Data,但評論者不告訴你如何解決這個問題。操作方法如下:

第一個,將文件WebMatrix.Data.dll複製到您站點的/ bin文件夾中。

如果你不知道從哪裏得到它,你可以有WebMatrix中創建一個使用一個支持數據庫的模板創建一個新的項目 - 比如,麪包 - 並把它弄出來的是項目的bin文件夾。或者你可以搜索你的硬盤驅動器的文件。我有一份C:\Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies

然後,在你的ASP.NET頁面,導入部件。

對於需要很長時間維護的網站來說,這是一個糟糕的主意,但對於本演示的目的,您只需將@using WebMatrix.Data;添加到產品頁面的頂部即可。它應該看起來像這樣:

@using WebMatrix.Data; 
@{ 
var db = Database.Open("SmallBakery"); 
var selectQueryString = "SELECT * FROM Product ORDER BY Name"; 
} 

現在它應該識別符號「數據庫」,一切都會好的。

+0

在我的情況下,我的站點bin文件夾中已經有了WebMatrix.Data.dll文件。這可能是因爲對WebMatrix進行了更新。無論哪種方式,很高興知道它應該位於何處。 – VoidKing 2013-05-29 18:34:10

6

你只需要從NuGet Gallery獲取這個「Microsoft.AspNet.WebPages.WebData」。

0

在我的情況下,我安裝了金塊包,但沒有找到WebMatrix.Data。 問題是,我創建了一個新的項目,而不是我只是創建了一個網站(文件/新建/ 網站),那麼數據庫默認情況下,(我想這是因爲項目的類型,我創建的第一次)發現

現在它工作正常,希望這會幫助某人。

相關問題