2015-09-02 45 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