WinCE7 0xc0000005 执行时本机异常 reader

WinCE7 0xc0000005 Native exception on Execute reader

我正在使用具有 .net Compact Framework 3.5 和 SQL Server CE 3.5SP1 的 VS2008 SP1 在 WinCE7.0 上为摩托罗拉 MC32N0 开发一个简单的应用程序。

每当我尝试从数据库中读取时,我都会收到此错误。

A native exception has occurred in projectName.exe. Select Quit and then restart this program or select details for more information.

当我查看细节时,我得到了这个

ExceptionCode: 0xc0000005
ExceptionAddress: 0xc0000000
Reading: 0xc0000000
at NativeMethods.GetKeyInfo(IntPtrpTx, String pwszBase Table, IntPtr prgDbKeyInfo, Int32 cDbKeyInfo,IntPtr pError)
at SqlCeDataReader.FillMetaData(SqlCeDataReader reader, Int32 resultType) . . .

它还在继续。这是数据库读取代码

public List<Users> SelectByUserName(string UserName)
{
    var list = new List<Users>();
    using (var command = EntityBase.CreateCommand(Transaction))
    {
        if (UserName != null)
        {
            command.CommandText = "SELECT * FROM Users WHERE UserName=@UserName";
            command.Parameters.Add("@UserName", SqlDbType.NVarChar);
            command.Parameters["@UserName"].Value = UserName;
        }
        else
            command.CommandText = "SELECT * FROM Users WHERE UserName IS NULL";

        using (var reader = command.ExecuteReader())
        {
            list = fetchData(reader);
        }
    }
    return list;
}

当它到达这个 command.ExecuteReader() 时发生异常。

经过大量搜索,有些人说这可能与 SQL Server CE 版本不匹配,但我该如何解决?部署应用程序时,将一个文件复制到文件夹。如何检查它的版本或更改正在使用的 SQL Server CE 的版本?

经过大量谷歌搜索,我终于通过为 SQL Server CE 3.5 安装 SP2 解决了这个问题,这些是软件包 Microsoft SQL Server Compact 3.5 Service Pack 2 for Windows Mobile & Microsoft SQL Server Compact 3.5 Service Pack 2 for Windows Desktop

安装这些后,删除对 System.Data.SqlServerCe 的引用,并再次添加相同的引用,这次使用版本 3.5.1.0。该文件位于 C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5\Devices\System.Data.SqlServerCe.dll,显示的版本是 windows explorer is 3.5.8080.0