2012-03-03 12 views
7

WebMatrixを使用してWebサイトを起動しようとすると、このエラーが発生します。私は電話をかける.csファイルを持っていますvar db = Database.Open("dbase");名前 'Database'は現在のコンテキストに存在しませんか?

"dbase"と呼ばれる私のプロジェクトにデータベースがあります。 WebMatrixを使用してサイトを起動しているので、WebMatrixパッケージを使用するためのweb.configファイルとインポートはありません。そのため、私はそれらを必要としているとは考えていません。 @{var db = Database.Open("dbase"); }のようなコードをRazorタグで囲む必要がありますか?これも私のためにエラーが発生します。

この原因は何ですか?誰にもこれに対する解決策はありますか?

答えて

5

あなたはWebMatrix.Data名前空間のusingディレクティブ必要も(あなたはおそらく持っている)WebMatrix.Data.dllアセンブリへの参照を必要とします:あなたはそれを使用することができるようにDatabaseクラスをインポートします

using WebMatrix.Data; 

を名前を完全に修飾することなく。

"インポート"(これは上記のようなディレクティブを使用することを意味すると仮定します)が必要ではないとは思えませんが、これが普通のC#ファイルの場合は、確かにを実行します。 doそれら(またはあなたは完全に型名を修飾する必要があります、これは醜いです)。

+0

ありがとうございました! .csファイルとそれ以外のファイルとの違いはわかりませんでした。私は今使用しているディレクティブを追加しました。(間違った言葉にお詫びします。私はJavaプログラマーとして勉強しようとしています) - エラーが発生しました。 'WebMatrixの型または名前空間名が見つかりませんでした。またはアセンブリ参照?) '。私はWebMatrix.Data.Dllを参照する必要があると思いますか?これどうやってするの? –

+0

@SimonKiely:私はWebMatrixを自分で使っていませんが、すでにそこにいると思いました。プロジェクトに「プロジェクト参照」の部分がある場合は、「参照の追加」を探します。 –

+0

ありがとうございます。私はこのような参照を見つけることができません。私はこれが必要であるとは思わない。それはそこにあるはずで、コードは.cshtmlファイルで動作します。私は非常に混乱しています。 –

7

ASP.NETでw3schoolsの処理を行っていたときにこの問題が発生しました。あなたはアセンブリ(DLL)WebMatrix.Dataが必要ですが、コメンターはどのように問題を修正する方法を教えていない:

は、基本的には、上記の答えは正しいです。方法は次のとおりです。

最初にファイルのWebMatrix.Data.dllをサイトの/ binフォルダにコピーします。

どこで入手できないのかわからない場合は、WebMatrixにデータベース対応のテンプレート(たとえば、Bakery)を使用して新しいプロジェクトを作成させ、そのプロジェクトの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

私の場合は、既にWebMatrix.Data.dllファイルが自分のサイトのbinフォルダにあります。これは、おそらくWebMatrixに更新が行われたためです。どちらにしても、どこに設置されるのかがわかりやすいです。 – VoidKing

6

NuGetギャラリーからこの "Microsoft.AspNet.WebPages.WebData"を取得するだけで済みます。

0

私の場合、ナゲットパッケージがインストールされていましたが、WebMatrix.Dataが見つかりませんでした。 問題は、私は新しいプロジェクトを作成したということでした代わりに、私はウェブサイト(ファイル/新しい/ ウェブサイト)を作成し、その後、データベースが(私はそれが原因で私が初めて作成したプロジェクトの種類のだと思う)デフォルトで発見されました

これはうまくいきましたが、うまくいけば、これは誰かを助けるでしょう。

関連する問題