Tôi đã sử dụng NuGet để cài đặt các gói Sqlite Lõi vào # dự án c của tôi sử dụng:kiện SqliteConnection vết từ chối bắn
>Install-Package System.Data.SQLite.Core
tôi tạo ra một kết nối cơ sở dữ liệu như sau:
var data = new SQLiteConnection(connectionString);
sau đó tôi móc một trình xử lý sự kiện cho sự kiện cập nhật kích hoạt mỗi khi có một câu lệnh cập nhật (cho mục đích của trường ghi ngày cuối cùng cho một đoạn logic nghiệp vụ cụ thể)
data.Update += DataOnUpdate;
Điều này thật tuyệt vời. Tuy nhiên lớp SqliteConnection cũng cho thấy một sự kiện được gọi là vết Các tài liệu nói như sau về sự kiện này:
"This event is raised whenever SQLite Statement First begins executing on this connection. It only applies for the given connection"
tôi đọc này có nghĩa là nó thực hiện một chức năng tương tự như sự kiện Cập nhật theo đó nó sẽ bắn bất cứ khi nào một SQL tuyên bố đang được thực hiện.
TUY NHIÊN
Khi tôi treo sự kiện này như sau:
data.Trace += DataOnTrace;
Nó không bao giờ cháy. Tôi đã thử SELECT, UPDATE, DELETE, TẠO TABLE, GIAO DỊCH và về cơ bản mỗi bit của logic Sql mà tôi có thể nghĩ đến và nó từ chối bắn.
Sự kiện này có gì nếu không kích hoạt? hoặc có điều gì tôi cần làm để có kết nối để kích hoạt sự kiện này không?
Điểm mấu chốt là bạn phải đăng ký sự kiện _after_ gọi mở –
tôi thực sự sẽ khuyến khích @TimRobinson bình luận được đưa trong một câu trả lời cập nhật vì đây là chìa khóa cho vấn đề của tôi. – killercowuk