小编典典

使用Blob在SQLite中存储字节数组

sql

对于我的应用程序,我试图在我的SQLite应用程序中存储一个字节数组,我以此方式填充我的SQLite数据库:

public bool InsertMessage()
    {
        //create string SQl and fill it with the SQLite query for inserting a message.
        string SQL = "Insert into ClockMessages(InsertDateTime, SendDateTime, Data) Values('"+ insertdatetime + "', null, '" + data + "');";
        List<SQLiteParameter> pars = new List<SQLiteParameter>();
        pars.Add(new SQLiteParameter("InsertDateTime", insertdatetime));
        pars.Add(new SQLiteParameter("Data", data));
        //send the SQl query and it's parameters to the SQLiteDatabase class
        return SQLiteDatabase.ExecuteNonQuery(SQL, pars);
    }

其中InsertDateTime是DateTime.UtcNow,而Data是字节数组。此结果的输出结果是一个包含以下内容的数据字段:System.Byte
[],我是否只能在不显示字符串的情况下仅显示该字段中的实际字节数组?我在各处都使用Byte
[]类型来填充数据库,因此我不会将其转换为字符串。我想在“数据”字段中看到类似的内容:01、54、32、23、11、02、53。数据库中“数据”字段的DataType是:BLOB。

谁能帮助我实现这一目标?


阅读 433

收藏
2021-03-17

共1个答案

小编典典

您应该在语句中使用参数:

string SQL = "INSERT INTO ClockMessages (InsertDateTime, SendDateTime, Data) VALUES (@InsertDateTime, NULL, @Data)";

其他一切似乎都是正确的。

您现在拥有的ToString()方法将在上调用方法,insertdatetime并将data结果连接到sql语句。实际上,您在语句中没有使用任何参数。

2021-03-17