当我尝试使用WebMatrix启动网站时出现此错误。我有一个.cs文件,可以拨打电话var db = Database.Open("dbase");
。
我的项目中有一个名为“dbase”的数据库。我没有web.config文件,也没有使用WebMatrix包的导入,因为我使用WebMatrix启动网站,所以我不相信我应该需要它们。我是否需要将代码包装在Razor标记中,例如@{var db = Database.Open("dbase"); }
?这对我来说也是一个错误。
可能导致这种情况的原因是什么?有没有人对此有任何解决方案?
答案 0 :(得分: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";
}
现在它应该识别符号“数据库”,一切都会很好。
答案 1 :(得分:7)
您只需从NuGet Gallery获取此“Microsoft.AspNet.WebPages.WebData”。
答案 2 :(得分:5)
您需要对WebMatrix.Data.dll
程序集(您可能拥有)的引用,并且 还需要using
命名空间的WebMatrix.Data
指令:
using WebMatrix.Data;
这将导入Database
类,以便您可以在不完全限定名称的情况下使用它。
目前尚不清楚为什么你认为你不需要任何“导入”(我认为你的意思是指使用上面的指令),但如果这是在一个简单的C#文件中,那么你当然做< / em>需要它们(或者你需要完全限定类型名称,这很丑陋)。
答案 3 :(得分:0)
在我的情况下,我安装了nugget包,但是没有找到WebMatrix.Data。 问题是我创建了一个新项目,而我刚创建了一个网站(文件/ new / WEBSITE ),然后默认找到数据库(我想这是因为我创建的项目类型第一次)
现在工作正常,希望这会对某人有所帮助。