3

私は c# wpf アプリケーションを作成しており、データ用に SQLite データベース (sqlite3.dll ライブラリ) を使用しています。私はスロベニア出身なので、ščćžđ のような文字を含む文字列を保存する必要があります。クエリが次のようになると、データを正常に保存し、dataGrid itemsSource を設定できます。

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が特殊文字を置き換える方法を見つけることができません...しかし、もっときれいな解決策があると思います:)

4

1 に答える 1

1

1) リテラルの代わりにパラメーターを使用してみてください。データベース コネクタは、適切な文字エンコーディングを保証する必要があります。

このリンクを参照してください: C# を使用して SQLite にパラメーターを追加する

2) ここに示すエンコーディング手法を試すこともできます。

http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/c1d98352-25a5-4ec4-8637-339fcee3715c/

于 2012-09-27T10:57:02.640 に答える