0

我开发了一个 C#.net windows 窗体应用程序来获取和更新来自/到 SQL server CE 数据库的数据。当我在 windows ce 6.0 机器上运行这个应用程序时,出现以下错误:

A native exception occurred in ItemDB.exe(my exe name).

Details:
Exception code : 0x80000002
Exception address: 0x40e843b4
Faulting module: sqlceme35.dll
offset: 0x000043b4

at    

NavigateMethod.GetKeyInfo(parm1,parm2,...)

at

SqlCEDataReader.FillMetaData(command)

at

sqlCeCommand.InitializeDataReader() 

所以我在网上搜索并找到了这个链接:

http://go4answers.webhost4life.com/Example/cant-find-pinvoke-dll-sqlceme35dll-49162.aspx

http://blogs.msdn.com/b/sqlservercompact/archive/2007/10/26/can-t-find-p-invoke-dll-sqlcemenn-dll.aspx

按照建议,我复制了 ZIP 文件(因为我没有得到 Cab 文件)并将其更改为 .Cab。然后我尝试运行 Cab,但是,它说“这不是有效的 wince 安装文件”。

希望我解释清楚。有人可以帮我吗?

4

1 回答 1

4

这几乎总是由您在 PC 上编译的内容与您在设备上部署的内容之间的 SQL CE 版本差异引起的。确保您的项目引用和设备上的 SQL CE 版本号相同。通常,我不是从参考中的“.NET”选项卡中添加参考,而是专门浏览参考,以便确切知道正在使用哪个文件,然后从同一位置手动将 SQLCE 部署到设备。

*编辑

您应该在此处查找要部署的文件的位置:

C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\armv4i

你的项目参考应该指向这里:

C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5\Devices\System.Data.SqlServerCe.dll

于 2013-10-22T15:30:42.747 回答