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