2015-09-02 48 views
1

我試圖執行以下命令更新數據丟失的字符:插入/ SQLite的在用C#

db.Query<People>("Update People set FirstName='Sérgio' WHERE PeopleID = 2") 

其中db是我SQLiteConnection對象(通過SQLite.WinRT提供)。我正在使用SQLiteStudio來管理我的.db文件。 當我使用SQLiteStudio更新「FirstName」字段時,它工作正常。但是當我通過應用程序進行操作時,它會變成「S rgio」。

我已經檢查了數據庫PRAGMA,它是UTF-8。

該錯誤似乎是在應用程序和數據庫之間。任何猜測如何解決它?

+2

工作的呢? 'db.Execute(「update People set FirstName =?where PeopleID =?」,「Sérgio」,2);' –

+0

你的源代碼文件的編碼是什麼? –

回答

0

謝謝@chue x。使用你的代碼工作得很好!

Does this work? db.Execute("update People set FirstName = ? where PeopleID = ?", "Sérgio", 2); 
+0

你在使用什麼庫? '查詢'不是.NET的一部分。如果這段代碼起作用,則意味着庫將SQL語句作爲ASCII發送到服務器,在將名稱發送到SQLite之前將其改名。 SQLite本身總是使用Unicode –

+0

@PanagiotisKanavos他似乎在使用[sqlite-net](https://github.com/praeclarum/sqlite-net)。 –

+0

我正在使用SQLite.WinRT – Leonardo