C# WinCE7 0xc0000005执行读卡器本机异常
我正在WinCE7.0上为Motorola MC32N0开发一个简单的应用程序,使用VS2008 SP1,具有.net Compact Framework 3.5和SQL Server CE 3.5SP1 每当我试图从数据库中读取数据时,就会出现此错误 projectName.exe中发生本机异常。选择退出,然后重新启动此程序,或选择详细信息以了解详细信息 当我谈到细节时,我得到了这个 例外代码:0xc0000005C# 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
例外地址: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数据库创建了另一个项目,并使用了用它创建的数据集。同一问题