2010-03-11 15 views
5

Tôi đã cố gắng chạy ứng dụng trong hai tình huống: với phiên bản nhỏ gọn SQL Server (3.5) được cài đặt và không có. Khi phiên bản SQL Server Compact chưa được cài đặt, tôi nhận được lỗi sau:Đã cố đọc hoặc viết bảo vệ bộ nhớ-Sql Compact và .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 
---------------------------------------------------------- 

Tôi đang xử lý Ngoại lệ ngoại lệ sử dụng this method.

Tôi nhận được lỗi này từ ứng dụng bảng điều khiển mà tôi bắt đầu từ Biểu mẫu Windows. Trong cả hai ứng dụng tôi đã chèn mã hóa ngoại lệ không hợp lệ và nó được thực hiện và nhận được trả về tệp văn bản và hộp thoại 'báo cáo lỗi' của Microsoft đang được tạo; làm thế nào để giữ cho điều đó xảy ra? Làm cách nào để khắc phục sự cố gây ra sự cố này?

Trả lời

-1

Tôi đã giải quyết lỗi đó !!! Nó không thực sự là lỗi SqlCompact hoặc Exception từ code.It là GAC đã được ném bởi vì tôi đã mở một ứng dụng khác cho một số mục đích và ứng dụng đó đang truy cập vào cơ sở dữ liệu. Vào thời điểm khi ứng dụng đó đóng DB, rõ ràng là nó đã bị giết khỏi ứng dụng gốc nên lỗi đã đến với SQL COMPACT. vì vậy tôi, ade vài thay đổi trong mã của tôi và nó đang làm việc ngay bây giờ !!! Cảm ơn tất cả đề xuất của bạn.

+0

Bạn đã thực hiện những thay đổi mã nào để làm cho nó hoạt động? Tôi nghĩ rằng tôi đang có cùng một vấn đề trong đó Visual Studio 2010 là "ứng dụng khác" có DB mở. – JasonD

+0

tôi có thể biết lý do cho downvote – Jankhana

+6

-1 Đơn giản vì đây không phải là câu trả lời. Tôi rất vui vì bạn đã giải quyết được vấn đề của mình, nhưng nhìn chung câu trả lời này không cho mọi người biết. –

1

Mã SQL nhỏ gọn gốc bị lỗi. Điều đó rất bất thường. Và rất không được gây ra bởi mã của bạn. Không phải loại vấn đề bạn có thể gỡ lỗi, bạn không có gì ngoài mã máy để xem. Nếu bạn chạy bất kỳ mã không được quản lý khác trong quá trình thì hãy xem xét nó chịu trách nhiệm về sự bất ổn định. Viết tắt máy tính và chụp giữa các đĩa cứng là sửa chữa nhanh.

+0

u có thể chỉ viết tắt trên wat u có nghĩa là "Viết tắt máy tính và chụp giữa các đĩa cứng là sửa chữa nhanh". – Jankhana

+1

Có nghĩa là: "loại bỏ máy, lấy một cái khác". –

2

Khi tôi có vấn đề này, vấn đề là kết nối cơ sở dữ liệu:

Nếu bạn không đóng kết nối trước khi mở lại nó, bạn nhận được lỗi này arround "System.Data.SqlServerCe".

Chỉ cần thêm dòng này giải quyết vấn đề của tôi:

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


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

lỗi riêng của tôi đã được gây ra bởi thực tế mà tôi đã sử dụng đề. Kiểm tra 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.

Các vấn đề liên quan