带有特殊字符(ščćž)的SQLite查询

3

我正在创建c# wpf应用程序,并使用SQLite数据库存储数据(sqlite3.dll库)。由于我来自斯洛文尼亚,所以我需要存储包含像ščćžđ这样的字符的字符串。当我的查询如下时,我可以成功地存储我的数据并设置我的数据网格项源:

List<Odgovor> list = AppData.DBObject.Query<Odgovor>("select * from Odgovor");
            ObservableCollection<Odgovor> odgovorList = new ObservableCollection<Odgovor>(list);
            this.dataGridOdgovor.ItemsSource = odgovorList;

当我进行查询时,操作成功。

"select * from Odgovor where PersonName = \"Nick\"";

但是当我执行这个查询时,却没有任何结果(我的数据库中有数据,所以这可能是SQLite编码问题)。

"select * from Odgovor where PersonName = \"Saša\"";

到目前为止,我还没有找到解决方案。我找不到如何用 SQLite 替换特殊字符,以便我可以在代码中替换每个特殊字符... 但我相信有更好的解决方案 :)

1个回答

1

你能否解释一下第一个方法? - klonitklonit
当然。我编辑了帖子,展示了一个链接到另一个帖子,你可以在那里看到如何在C#中传递参数给SQLite。 - Yván Ecarri
第二个解决方案不起作用。`String personName = SkupniAtributi.personName;` `UTF8Encoding utf8 = new UTF8Encoding();` `byte[] b = utf8.GetBytes(personName);` `string str1 = utf8.GetString(b);` `tabOdgovor.Query = "select * from Odgovor where PersonName=\"" + str1 + "\"";` - klonitklonit
很抱歉看到你决定放弃使用参数。在查询字符串中连接值已被证明对应用程序的安全构成威胁。 - Yván Ecarri
我正在放弃参数方法,因为我没有SQLiteParameter类。我正在使用Krueger Systems的SQLite3.dll、SQLite.cs和SQLiteAsync.cs。目前我非常糟糕地解决了我的问题(用#c替换č等等...)。 - klonitklonit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接