2012-03-03 4 views
7

WebMatrix를 사용하여 웹 사이트를 시작하려고 할 때이 오류가 발생합니다. 나는 var db = Database.Open("dbase");을 호출하는 .cs 파일을 가지고있다.'Database'라는 이름이 현재 컨텍스트에 존재하지 않습니까?

"dbase"라는 프로젝트에 데이터베이스가 있습니다. Webmatrix를 사용하여 사이트를 시작하기 때문에 webMatrix 패키지를 사용하기위한 web.config 파일 및 가져 오기가 없으므로 필자는 필 요할 필요가 없다고 생각합니다. Razor 태그에 코드를 포장해야합니까 (예 : @{var db = Database.Open("dbase"); })? 이것도 나를 위해 오류가 발생합니다.

이 문제의 원인은 무엇일까요? 누구든지이 솔루션을 가지고 있습니까?

답변

5

당신은 WebMatrix.Data.dll 어셈블리에 대한 참조가 필요합니다 (당신은 아마이있는) 당신 WebMatrix.Data 네임 스페이스에 대한 using 지침이 필요합니다 당신이 그것을 사용할 수 있도록

using WebMatrix.Data; 

Database 클래스를 가져옵니다 이름을 완전히 한정하지 않아도됩니다.

"imports"가 필요 없다고 생각하는 이유는 분명하지 않지만 (위의 지시문을 사용한다고 가정 함)이 파일이 일반 C# 파일 인 경우 확실하게 을 수행하십시오.해야합니다. 그들 (또는 당신은 완전히 못생긴 형식 이름을 한정해야합니다).

+0

응답 해 주셔서 감사합니다. 나는 .cs 파일과 나머지 파일을 구별하지 못했습니다. 나는 이제 사용 지시문을 추가했다. (틀린 용어에 대한 사과, 나는 배우려고하는 자바 프로그래머이다.) - 이제 오류가 발생한다. '타입이나 네임 스페이스 이름'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

내 경우에는 이미 내 사이트 bin 폴더에 WebMatrix.Data.dll 파일이 있습니다. 이것은 아마도 WebMatrix에 대한 업데이트 때문일 것입니다. 어느 쪽이든, 그것이 어디에 있어야 하는지를 아는 것은 좋은 일입니다. – VoidKing

6

NuGet 갤러리에서 "Microsoft.AspNet.WebPages.WebData"를 가져 오면됩니다.

0

제 경우에는 너깃 패키지를 설치했지만 WebMatrix.Data를 찾지 못했습니다. 문제는 새로운 프로젝트를 만들었지 만 웹 사이트 (파일/신규/웹 사이트 :)를 만든 다음 기본적으로 데이터베이스를 찾았습니다 (프로젝트 유형이 처음 생성 되었기 때문입니다)

지금은 잘 작동하고 있습니다. 잘하면이 도움이 될 것입니다.

관련 문제