2010-03-11 60 views
5

我试过在两种情况下运行该应用程序:安装了SQL Server精简版(3.5)并且没有安装。如果没有安装SQL Server Compact Edition中,我得到以下错误:试图读取或写入受保护的内存-Sql Compact和.NEt

Exception :Attempted to read or write protected memory. This is often an indication 
that other memory is corrupt. 

Inner Exception : 
======================== 

Stack Trace : 
======================== 
    at System.Data.SqlServerCe.NativeMethods.CloseStore(IntPtr pSeStore) 
    at System.Data.SqlServerCe.SqlCeConnection.ReleaseNativeInterfaces() 
    at System.Data.SqlServerCe.SqlCeConnection.Dispose(Boolean disposing) 
    at System.Data.SqlServerCe.SqlCeConnection.Finalize() 
Source : 
======================== 
System.Data.SqlServerCe 
---------------------------------------------------------- 

我使用this method处理未处理的异常。

我从我从Windows窗体开始的控制台应用程序中收到此错误。在这两个应用程序中,我插入了未处理的异常编码,并且它正在执行并返回到文本文件,并且Microsoft的“报告错误”对话框正在生成;我如何避免这种情况发生?如何解决导致此问题的原因?

回答

-1

我解决了这个错误!这不是真的SqlCompact错误或代码异常。它是GAC是throwingit,因为我打开另一个应用程序用于某种目的,该应用程序正在访问数据库。在那个应用程序关闭数据库的时候,它明确地从父应用程序中被杀死,所以SQL COMPACT的错误即将到来。所以我,我的代码有一些改变,现在它正在工作!感谢您的所有建议。

+0

你做了哪些代码更改以使其工作?我想我的问题在于Visual Studio 2010是打开DB的“其他应用程序”。 – JasonD 2010-08-27 03:50:02

+0

我可以知道downvote的原因 – Jankhana 2012-03-12 10:57:15

+6

-1只是因为这不是一个答案。我很高兴你解决了你的问题,但总的来说,这个答案并没有告诉任何人。 – 2013-05-17 12:54:24

1

原生SQL Compact代码崩溃。这非常不寻常。并且非常不可能由您的代码导致。不是你可以调试的那种问题,除了机器代码外,你什么也看不到。如果您运行任何其他进程中的非托管代码,则认为它是造成不稳定的原因。注销PC并在磁盘盘片间进行拍摄是快速修复。

+0

可你刚刚介绍了上笏ü通过意味着“核销PC与盘片之间的拍摄它是一蹴而就的事情。” – Jankhana 2010-03-12 04:56:28

+1

意思是:“摆脱机器,得到另一个”。 – 2010-03-12 05:04:29

2

当我有这个问题,这个问题是数据库连接:

如果不关闭连接之前重新打开它,你就会得到这个错误以防万一“System.Data.SqlServerCe”。

刚加入这一行解决了我的问题:

SqlCeConnection conn = new SqlCeConnection(_connectionString); 
conn.Close(); //adding this. 


if(conn == ConnectionState.Open) { 
//-- Your code here. 
} 
0

正在被这样的事实,我是使用线程使我自己的错误。检查this link

The intermittent quality of the exception seems to indicate a threading problem. The sql ce database in this case is being concurrently accessed by multiple threads: one is a write-only thread used by a SqlCeResultSet object and the other(s) are read-only operations generated by LINQ queries.

相关问题