问题描述
我之前是做经典ASP的开发的,喜欢全手敲代码,在ASP.NETWebForm时代一直也没有转到.NET,最近看到ASP.NET的WebPages/Razor的模式,觉得很亲切,想尝试一下。但按照其官方的例子尝试连接数据库的时候出了问题。具体问题如下,请各位老鸟予以点拨:环境:VisualStudio2015,SQLServer2012(官方的例子用的是Matrix)1、我在SQLServer里建立了数据库,新建一个.NET的空网站,新建一个叫dblist.cshtml的Razor语法的Webpage页面。2、在web.config增加了连接字符串<connectionStrings><addname="SQLServerConnectionString"connectionString="server=MySQL;database=db;uid=sa;pwd=123456"providerName="System.Data.SqlClient"/></connectionStrings>3、在新建的dblist.cshtml里,我增加了以下代码:@{vardb=Database.Open("SQLServerConnectionString");varselectQueryString="SELECT*FROMProductORDERBYName";}(其它不是重要的代码我就略过不贴上来了)4、但提示错误,“当前上下文中不存在Database名称”,应该是Database对象不存在。我又反复查看了官方网站的教程和视频,都没有在哪里单独去做引入之类的工作,不过官方网站使用的是WebMatrix。5、我又查了网上的信息,说是这个Database类是在WebMatrix.Data空间里。我就依葫芦画瓢,在引用管理器中浏览找到Microsoft.visualstudio.data.dll,引入进来,但是没有找到Database类,应该不对。然后我又到网上搜索到WebMatrix.Data.dll,复制到对应目录下,然后再在引用管理器中浏览,找到这个文件,再次引用进来。看到WebMatrix.Data下有Database对象,也有官方网站上(以及w3cshool.cc,w3school.com.cn等)教程中提到的Database的Open等方法。以为问题解决了,但Database处还是提示错误,“当前上下文中不存在Database名称”。运行也还是出错。我想一定是卡在哪个位置我理解的不对。请各位高手能点拨一下我。万分感谢!
解决方案
解决方案二:
引用楼主lintianyu2008的回复:
4、但提示错误,“当前上下文中不存在Database名称”,应该是Database对象不存在。我又反复查看了官方网站的教程和视频,都没有在哪里单独去做引入之类的工作,不过官方网站使用的是WebMatrix。
给你视频的“官方”,它们有可实际运行的源代码可下载吗?建议你找正规的书本教程,而不是看视频。花100块钱买1本书,很重要。
解决方案三:
谢谢您的回复,我说的官方是指的是Microsoft,它的网站上有视频和文字稿。倒没有源代码可以下载。http://www.asp.net/web-pages/overview/data/5-working-with-data后来我又灰溜溜地安装了WebMatrix,居然简单得出乎意料地成功了。没理由Webmatrix行,而VisualStudio不行的呀,还是我自己可能在哪里基础搞错了。这其中缘由我还是没搞明白。PS:.NET的WebPages方面的知识及应用,还算比较新的,暂时没看到有合适的书本。所以只能硬着头皮啃微软自己的网络教程。
解决方案四:
说是这个Database类是在WebMatrix.Data空间里那你添加dll之后应该可以提示添加命名空间引用
解决方案五:
可能是人家封装好的类库吧。你添加了这个类库命名空间了吗?其实,我觉得你直接学习asp.netmvc算了。既然有asp基础,要理解mvc就比较容易。就是把很逻辑放入了action。前台的<%%>替换成了@符号