2016-10-23 76 views
0

我研究這和所有我能找到的是打開.Trace =真像這樣的建議:如何在Xamarin Studio中查看由SQLite.NET PCL生成的SQL?

 db1 = DependencyService.Get<ISQLite>().GetConnection(); 
     db1.Trace = true; 

我也試過這樣:

db2.Trace = true; 
var categories = db2.Query<Category>("SELECT * FROM Category ORDER BY Name").ToList(); 
Debug.WriteLine("xxxx"); 

嗯,我這樣做,然後重新啓動應用。當我查看應用程序輸出時,我只看到有關啓動的線程和xxxx的信息,但看不到任何SQL跟蹤信息。

任何人都可以給我這方面的建議。感謝

回答

0

查找範圍的Application Output窗口爲開始設置Trace爲真後Executing

示例輸出線:

Executing: create table if not exists "Valuation"(
"Id" integer primary key autoincrement not null , 
"StockId" integer , 
"Time" datetime , 
"Price" float) 
Executing Query: pragma table_info("Valuation") 
Executing: create index if not exists "Valuation_StockId" on "Valuation"("StockId") 

Executing: insert into "Stock"("Symbol") values (?) 

Executing Query: select * from "Stock" where ("Symbol" like (? || '%')) 
    0: A 

價:https://github.com/praeclarum/sqlite-net/blob/38a5ae07c886d6f62cecd8fdeb8910d9b5a77546/src/SQLite.cs

+0

謝謝,但我有一直在那裏尋找3-4個小時:-(認真的,我需要一些幫助和建議,我所做的是將Krueger的nuget package 1.2.0安裝到我的應用程序,IOS和Android中,但我看到你引用了一個SQLite。 cs文件,你可以告訴我你的應用程序,你使用了哪些nuget包,並且這也需要我把這個SQLit e.cs文件的一些地方?首先十分感謝。 – Alan2

0

SQLite PCL使用Debug.WriteLine這意味着日誌僅包含在PCL的Debug版本中。

刪除對sqlite.net PCL的nuget引用(保留原生引用),而是將SQLite.cs作爲類添加到項目中,並執行調試構建,同時設置Trace標誌,您將看到跟蹤。

我沒有做什麼特別的東西除了包括我Xamarin的iOS項目SQLite.cs文件,這個工作:

using (var conn = new SQLite.SQLiteConnection("mydb.sqlite") { Trace = true }) { 
    var rows = conn.Table<PodcastMetadata>().Where(row => row.DurationMinutes < 10).Select(row => new { row.Title }); 
    foreach (var row in rows) { 
     Debug.WriteLine(row); 
    } 
} 

輸出:

Executing Query: select * from "PodcastMetadata" where ("DurationMinutes" < ?) 
    0: 10 
相關問題