C# WinCE7 0xc0000005执行读卡器本机异常

C# WinCE7 0xc0000005执行读卡器本机异常,c#,.net,sql-server-ce,windows-embedded-compact,sqlcedatareader,C#,.net,Sql Server Ce,Windows Embedded Compact,Sqlcedatareader,我正在WinCE7.0上为Motorola MC32N0开发一个简单的应用程序,使用VS2008 SP1,具有.net Compact Framework 3.5和SQL Server CE 3.5SP1 每当我试图从数据库中读取数据时,就会出现此错误 projectName.exe中发生本机异常。选择退出,然后重新启动此程序,或选择详细信息以了解详细信息 当我谈到细节时,我得到了这个 例外代码:0xc0000005 例外地址:0xc0000000 读数:0xc0000000 在NativeMe

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

每当我试图从数据库中读取数据时,就会出现此错误

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

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

例外代码:0xc0000005
例外地址:0xc0000000
读数:0xc0000000
在NativeMethods.GetKeyInfo(IntPtrpTx、String pwszBase表、IntPtr prgDbKeyInfo、Int32 cDbKeyInfo、IntPtr pError)
在SqlCeDataReader.FillMetaData(SqlCeDataReader,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;
}
公共列表SelectByUserName(字符串用户名)
{
var list=新列表();
使用(var命令=EntityBase.CreateCommand(事务))
{
如果(用户名!=null)
{
command.CommandText=“从UserName=@UserName的用户中选择*”;
添加(“@UserName”,SqlDbType.NVarChar);
command.Parameters[“@UserName”]。Value=UserName;
}
其他的
command.CommandText=“从用户名为NULL的用户中选择*”;
使用(var reader=command.ExecuteReader())
{
列表=获取数据(读卡器);
}
}
退货清单;
}
当它到达此
命令.ExecuteReader()
时,会发生异常


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

经过大量的谷歌搜索,我终于通过安装SP2 for SQL Server CE 3.5解决了这个问题,以下是软件包和


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

尝试选择列而不是“选择*”-并设置参数size@ErikEJ我试过,但问题是一样的,我用sqlce数据库创建了另一个项目,并使用了用它创建的数据集。同一问题