Windows 7 SQL CE DB不';在Win 7-Win 8上构建时,无法在Windows 6.5设备上读取
我似乎与这里的另一个用户有相同的问题,但是该线程的建议并没有解决我的问题 这与SQL Server CE v3.1(DLL版本3.0.5300.0)有关,因此我可以在Windows XP 32位计算机上使用实用程序构建SDF文件,但在我的Win 7 Dev计算机和独立的Win 8计算机上使用相同的编译代码和DLL,这将不允许在设备上正确查询数据库 比如说Windows 7 SQL CE DB不';在Win 7-Win 8上构建时,无法在Windows 6.5设备上读取,windows-7,windows-xp,sql-server-ce,windows-mobile-6.5,Windows 7,Windows Xp,Sql Server Ce,Windows Mobile 6.5,我似乎与这里的另一个用户有相同的问题,但是该线程的建议并没有解决我的问题 这与SQL Server CE v3.1(DLL版本3.0.5300.0)有关,因此我可以在Windows XP 32位计算机上使用实用程序构建SDF文件,但在我的Win 7 Dev计算机和独立的Win 8计算机上使用相同的编译代码和DLL,这将不允许在设备上正确查询数据库 比如说 SELECT Name FROM USERS WHERE Name = 'Joey' 应该从数据库返回1个结果。如果它是在windows X
SELECT Name FROM USERS WHERE Name = 'Joey'
应该从数据库返回1个结果。如果它是在windows XP机器上编译的,它将工作;如果它是在windows 7/8机器上编译的,它将不会被读取,结果集为0
这是一种奇怪的行为,因为并非所有查询都会受到影响。如果使用不同的where子句查询同一个表,则结果不同。直接在VS2005中检查该文件,或者使用我编写的用于读取.SDF文件的实用程序,我可以看到该查询在两个Windows 7/8上都可以正常工作
似乎只有将SDF文件复制到Windows 6.5设备后,这才会成为问题。这与构建文件SQL Server CE v3.1(DLL版本3.0.5300.0)的应用程序具有相同的DLL
我已经检查过了,可以看出这不是x64/x32体系结构的问题,因为在32位或64位Win 7或Win XP机器上构建时,结果是一样的
在上一篇文章中,我确实看到了一些来自MS()的简短但有用的信息
我正在寻找解决这个问题的方法,但任何其他信息都会有帮助,例如。。。如何检查Visual Studio中设备(如模块)窗口上运行的DLL版本将非常有用。如果您不幸不得不使用早期版本的SQL Server CE(<3.0.5300.0),那么这是一个有趣的问题。虽然这在当时是一个限制,但需要一段时间才能解决 我重新检查了设备上的所有东西。现在,尽管安装程序包中包含了适用于3.0.5300.0的正确DLL,但这些DLL并未复制到应用程序目录“$\DEVICE\Program Files\My application”。为了能够在Windows 7/8上编译数据库并使该数据库在Windows 6.5设备上工作,我必须手动确保桌面应用程序和Windows设备中都有正确的文件 我在两个应用程序中包含的文件如下:-
- sqlceca30.dll
- sqlcecompact30.dll
- sqlceer30EN.dll
- sqlceme30.dll
- sqlceoledb30.dll
- sqlceqp30.dll
- sqlcese30.dll
- System.Data.SqlServerCe.dll