0

我有一个 SQLiteDatabas,我想将我的 byte[] 存储在一个名为“Data”的字段中,我现在使用的 Datetype 称为:Blob,将 Byte 数组存储在 SQLiteDatabase 中的方法如下所示:

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);
}

我的 SQLiteDatabase 中的字段 Data 字段现在包含以下文本: System.Byte[]

我想将真正的 byte[] 实际存储在数据库中,我该如何实现呢?数据字段是否需要另一个 DateType?

4

2 回答 2

2

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

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

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

于 2013-02-25T10:45:39.110 回答
-1

我会将字节数组转换为 base64string 并将其存储在 nvarchar(max) 字段中

Convert.ToBase64String(byte[])

http://msdn.microsoft.com/en-us/library/dhx0d524.aspx

并通过 byte[] = Convert.FromBase64String 恢复它

于 2013-02-25T10:02:57.490 回答