vs2010下连接sql2000的一些问题
最近做个新项目,用的vs2010+sql2000,因为之前的项目都是从2008迁移过来的,linq的dbml文件都已经生成好了的,在VS上没有什么涉及到数据库连接的操作,所以到今天在ServerExplorer新建数据库连接时才发现这个问题.
新建数据库或连接,会提示:This server version is not supported. You must have Microsoft SQL Server 2005 or later.
查了下资料,确定VS2010起已经不再对SQL2000做支持了,你将无法再通过SqlClient在VS2010中连接sql2000,当然,你可以用ODBC连接来建立与SQL2000的连接,但是基本也只是个摆设,无法编辑表,不能通过拖拽表的形式生成dbml文件
这个问题的解决方案有三种
1.升级SQL2000到2K5或者2K8,我在自己的一些服务器上已经开始了使用2K5,虽然还没深入去了解2K5的全部特性,但是起码不会比2000更差,SQL2000虽然是个很不错的数据库,但是终究是要升级的,不如就趁机升级好了.
2.回退VS到2008.这个不予置评.
3.使用SqlMetal.exe工具,这个工具安装VS之后是自动安装好了的,打开vs command prompt就可以直接使用了
使用很简单,记住下面2个命令就可以自由的生成dbml及相应的cs文件了
a.生成dbml文件
sqlmetal /server:dbserver的名称 /database:要连接的数据库名称 /dbml:c:\xxx.dbml
b.生成cs文件
sqlmetal /namespace:CS文件的名字空间 /code:C:\xx.designer.cs /language:csharp c:\xx.dbml
文件生成完毕后拷贝到项目里覆盖即可.这个方法虽然比直接在IDE里拖拽麻烦了一点,但是如果不想升级数据库,这倒是个好方法.
SqlMetal.exe更多用法可以查看MSDN:http://msdn.microsoft.com/en-us/library/bb386987.aspx