Visual Studio 2017 使用低版本 SQL LocalDB

(新手原创,欢迎转载,转载请注明出处https://blog.csdn.net/qq_29730023/article/details/80214905)

SQL LocalDB,轻量级MSSQL本地运行环境,最高版本仅40Mb+,用户机安装即可运行含有LocalDB生成的*.MDF数据库文件的应用程序。安装包包含在SQL Server 2014 Express(下载)。使用该版是因为,经过几天的折腾发现这是最后一个支持32位系统的LocalDB,Visual Studio 2017内置的是SQL Server 2016 Express(仅有x64)Visual Studio 2015内置两个版本的LocalDB(因安装一次时间太久就没有反复测试)。

本文的初衷是解决两个问题,百度、谷歌n次未得到结果。

问题一:Invalid value for key 'attachdbfilename'
Visual Studio 2017 使用低版本 SQL LocalDB_第1张图片

这个问题网上千篇一律的在说链接字符串。在MSDN得到了一点线索,大致是与.NET版本有关,虚拟机安装的是Win7x86+.NET4,改装.NET4.5问题解决。

问题二:上面的问题解决了,又出现了新的问题……
首先在VS2017创建一个C#窗体工程,用VS的SQL Server对象资源管理器创建一个数据库,随便插入一个表填几个数据。注意红色箭头的版本号,稍后引入问题说明。

Visual Studio 2017 使用低版本 SQL LocalDB_第2张图片Visual Studio 2017 使用低版本 SQL LocalDB_第3张图片

链接数据库

Visual Studio 2017 使用低版本 SQL LocalDB_第4张图片

添加数据源

Visual Studio 2017 使用低版本 SQL LocalDB_第5张图片

程序引用

Visual Studio 2017 使用低版本 SQL LocalDB_第6张图片

编译并运行(主机Win10x64)

Visual Studio 2017 使用低版本 SQL LocalDB_第7张图片

放入虚拟机运行(Win7x86+.NET4.5)

Visual Studio 2017 使用低版本 SQL LocalDB_第8张图片

E文不大好,大致能看出和版本有关系。

记得前面截图那个红色箭头标记的版本号吗(13.0.4001)?因虚拟机没有安装VS,所以使用LocalDB的命令行工具SqlLocalDB查看

Visual Studio 2017 使用低版本 SQL LocalDB_第9张图片

12.0.2000.8(虚拟机)和13.0.4001(主机)不同。前面说过LocalDB 2014(12.0.2000.8)是32位系统的最后一个版本,这个在VS2017的安装包里面得到证实。

VS2017安装包x64的LocalDB。

Visual Studio 2017 使用低版本 SQL LocalDB_第10张图片

VS2017安装包x86的LocalDB

Visual Studio 2017 使用低版本 SQL LocalDB_第11张图片


好吧!虚拟机没有32位的LocalDB,那就只能在主机安装低版本x64的LocalDB,安装没有问题。

Visual Studio 2017 使用低版本 SQL LocalDB_第12张图片

可是两个版本的命令行工具SqlLocalDB创建自动实例MSSQLLocalDB都是13.0.4001版本……。这个小插曲有两个解决方案:

1、将主机2016 LocalDB卸载,可是2016 LocalDB和SSDT是绑定的,如果不装SSDT还要装其他的创建编辑数据库的工具。

Visual Studio 2017 使用低版本 SQL LocalDB_第13张图片

2、这是最终解决方案(可能是比较笨的办法),先将主机SSDT和2016 LocalDB卸载(注意要在控制面板/删除添加程序卸载),然后用2014 LocalDB命令行工具SqlLocalDB创建一个名为MSSQLLocalDB的自动实例,处理完毕再把SSDT和2016 LocalDB安装回来。

主机命令行操作截图(“SqlLocalDB h” 可以查看参数如何使用

Visual Studio 2017 使用低版本 SQL LocalDB_第14张图片

打开VS2017创建数据库再看看,版本号已经是12.0.2000,按前面的步骤链接程序和数据库并编译。

Visual Studio 2017 使用低版本 SQL LocalDB_第15张图片

x86虚拟机运行结果如下图。

Visual Studio 2017 使用低版本 SQL LocalDB_第16张图片

总结:生命在于折腾,不死不休!哈哈!

你可能感兴趣的:(C#,SQL)