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
我正在使用具有 .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