0

私は SQLiteDatabas を持っていて、「Data」というフィールドに byte[] を保存したいのですが、この時点で使用している 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(バイト[])

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

そして byte[] = Convert.FromBase64String で元に戻します

于 2013-02-25T10:02:57.490 に答える