2

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

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

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

当我进入细节时,我得到了这个

异常代码:0xc0000005
异常地址:0xc0000000
读取:0xc0000000
在 NativeMethods.GetKeyInfo(IntPtrpTx,字符串 pwszBase 表,IntPtr prgDbKeyInfo,Int32 cDbKeyInfo,IntPtr pError)
在 SqlCeDataReader.FillMetaData(SqlCeDataReader 阅读器,Int32 结果类型). .

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

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 的版本?

4

1 回答 1

3

At last after a lot of googling i solved this problem by installing the SP2 for SQL Server CE 3.5, these are the packages Microsoft SQL Server Compact 3.5 Service Pack 2 for Windows Mobile & Microsoft SQL Server Compact 3.5 Service Pack 2 for Windows Desktop

After installing these remove the reference to System.Data.SqlServerCe and again add the same reference this time with version 3.5.1.0. The file is at C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5\Devices\System.Data.SqlServerCe.dll and version shown is windows explorer is 3.5.8080.0

于 2015-08-22T11:28:00.170 回答