WinCE7 0xc0000005执行阅读器

时间:2015-08-20 06:33:29

标签: c# .net sql-server-ce windows-embedded-compact sqlcedatareader

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

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

  

projectName.exe中发生了本机异常。选择退出,然后重新启动此程序或选择详细信息以获取更多信息。

当我转到细节时,我得到了这个

  

ExceptionCode:0xc0000005
  异常地址:0xc0000000
  阅读:0xc0000000
  at NativeMethods.GetKeyInfo(IntPtrpTx,String pwszBase Table,IntPtr prgDbKeyInfo,Int32 cDbKeyInfo,IntPtr pError)
  在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的版本?

1 个答案:

答案 0 :(得分:3)

最后经过大量谷歌搜索,我通过安装SP2 for SQL Server CE 3.5解决了这个问题,这些是包Microsoft SQL Server Compact 3.5 Service Pack 2 for Windows Mobile&amp; 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资源管理器is 3.5.8080.0