我希望將我的Visual Studio C#代碼與unicode字符串插入到SQLite數據庫中有所幫助。將Unicode字符串轉換爲SQLite數據庫
下面是我的測試代碼編寫測試字符串到數據庫:
string testStr = "á Á ñ ç é á";
SQLiteConnection mydataConnection = new SQLiteConnection(); // setup new sql connection obj
try
{
//// SQLite DB
mydataConnection.ConnectionString =
"Data Source=C:\\Users\\John\\Desktop\\location.db; Version=3; UseUTF16Encoding=True;Synchronous=Normal;New=False"; // set up the connection string
mydataConnection.Open(); // open the connection to the db
SQLiteCommand myCmd = new SQLiteCommand(); // create a new command object
myCmd.Connection = mydataConnection; // whats its connected to, see above connection string
SQLiteParameterCollection myParameters = myCmd.Parameters; // good pratice to use parameters to pass data to db
myParameters.AddWithValue("@name", testStr); //
myCmd.CommandText = "INSERT INTO location (name) VALUES (@name)";
myCmd.ExecuteNonQuery();
}
catch (SQLiteException d)
{
string myerror = "Database Error" + d;
MessageBox.Show(myerror);
}
finally // good pratice to close db connection in a finally so exceptions dont leave open.
{
mydataConnection.Close();
}
當我查看數據庫/表(使用SQLite管理員)的字符串看起來是這樣的: áA A±A作爲一個測試,我可以複製&將字符串直接粘貼到數據庫使用SQLite管理員和字符串被保存,隨後可以查看確定。
我試過切換「UseUTF16Encoding = True;」真/假 - 沒有區別。
任何想法我做錯了。
嘗試用上面的C#插入一行,然後用SQLite Administrator插入一行。然後用C#和各種編碼讀取它們,並看看結果是什麼(我猜SQLite管理員使用C#默認無法識別的編碼) – Thymine