2010-03-11 61 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.

相關問題