将byte []存储在SQLite数据库中并从SQLite数据库中选择byte []

时间:2013-02-25 09:43:35

标签: c# visual-studio sqlite bytearray

我有一个SQLiteDatabas,我想将我的byte []存储在一个名为“Data”的字段中,此时我正在使用的Datetype被称为:Blob和在SQLiteDatabase中存储Byte数组的方法看起来像这样:

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中的字段数据字段现在包含以下文本:System.Byte []

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:-2)

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

Convert.ToBase64String(字节[])

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

并按字节[] = Convert.FromBase64String

还原它