2015-07-03 14 views
7

ateş reddediyor Bir güncelleme bildiriminin (belirli bir iş mantığı parçası için bir son yazma tarihi alanının amaçları için) her zaman tetiklendiği güncelleştirme olayına yönelik bir olay işleyicisiSqliteConnection izleme olayı kullanıyorum benim C# projeye SQLite Çekirdek paketini yüklemeyi Nuget kullandık

data.Update += DataOnUpdate; 

Bu harika.

"This event is raised whenever SQLite Statement First begins executing on this connection. It only applies for the given connection" 

Ben her ne zaman bir SQL o kovmalı sayede Güncelleme olayına benzer bir işlevi yerine getirir demek bu okuyun: Ancak SqliteConnection sınıfı da belgeleri bu olay hakkında şunları söylüyor İz adlı etkinliğe ortaya çıkarır ifade yürütülür.

ANCAK

şöyle ben bu olayı kanca: Bu ateşler asla

data.Trace += DataOnTrace; 

. SELECT, UPDATE, DELETE, CREATE TABLE, TRANSACTTIONS ve temelde düşündüğüm Sql mantığının her bir parçasını denedim ve ateş etmeyi reddettim.

Bu olay, ateş etmemek için orada ne var? ya da bu olayı ateşlemek için bağlantı kurmak için yapmam gereken bir şey var mı?

cevap

8

System.Data.SQLite paketini indirdim ve aşağıdaki kodu yazdım. İzleme olayı benim için iyi görünüyor.

"tbl1" (önemsiz şema) olarak adlandırılan bir tablo içeren bir SQLite veritabanı Verilen

static void Main(string[] args) 
    { 

     using (SQLiteConnection conn = new SQLiteConnection(@"Data Source=C:\dev\Sandbox\Sandbox.Console\test.db;Version=3;")) 
     { 
      conn.Open(); 
      conn.Trace += conn_Trace; 

      using(SQLiteCommand cmd = new SQLiteCommand("Select * from tbl1", conn)) 
      { 
       using (SQLiteDataAdapter da = new SQLiteDataAdapter(cmd)) 
       { 
        DataSet ds = new DataSet(); 
        da.Fill(ds); 

       } 
      } 

      conn.Trace -= conn_Trace; 
      conn.Close(); 
     } 
    } 

    static void conn_Trace(object sender, TraceEventArgs e) 
    { 
     System.Console.WriteLine(e.Statement); 
    } 
+2

anahtar nokta dahil edilmesi Açık –

+0

Gerçekten @TimRobinson yorumunu teşvik edecek arayarak _after_ olaya abone olması güncellenmiş bir cevabın içinde bu benim sorunumun anahtarıydı. – killercowuk