0
我有一個奇怪的問題。我嘗試在SQLite表上運行查詢,但它不返回內容,它返回「System.Byte []」。 此代碼運行查詢和應該得到的「文本」行內容:C#SQLite查詢不返回
string q = "SELECT text FROM leiras WHERE(id=" + this.id + ");";
DataTable dt = s.executeNormalQuery(q);
DataRow dr = dt.Rows[0];
string content = dr[0].ToString();
這是s.executeNormalQuery(查詢字符串):
DataTable dt = new DataTable();
try
{
SQLiteConnection con = new SQLiteConnection(this.conURL);
con.Open();
SQLiteCommand com = new SQLiteCommand(query, con);
SQLiteDataReader read = com.ExecuteReader();
dt.Load(read);
read.Close();
con.Close();
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace);
}
return dt;
而在「文本」細胞表包含
cg0ovnP0w6XyBKxLQq6XaZpxAPw/lHlSx/fRjZSdmuU=
as blob。
它返回一個'byte []',因爲該字段被存儲爲一個blob。要轉換它,你必須知道內容是什麼(例如XML)。 –
根據您使用的編碼(UTF8,ASCII ...),您可以使用System.Text.Encoding類將字節數組轉換爲字符串。 – Stonehead
我試着對它進行foreach,但它仍然打印「System.Byte []」。我不知道文本的原始編碼是什麼,我只知道文本是使用AES進行BASE64編碼和加密的。內容是「cg0ovnP0w6XyBKxLQq6XaZpxAPw/lHlSx/fRjZSdmuU =」 – KriszDev