画像/オーディオ/ビデオ クリップなどのメディア ファイルを含むアプリを開発しています。これらのメディア ファイルを blob として C#/XAML Windows ストア アプリの SQLite に挿入したいと考えています。BLOB データ型を示す例が見つかりません。どうやってやるの ?ここでは、SQLite が BLOB データ型をサポートしていることがわかります
質問する
998 次
1 に答える
1
どの API を使用しているかはわかりませんが、 SQLite-Netの単体テストを次に示します。テスト オブジェクトを作成し、BLOB (バイト配列) にデータを入力するだけです。次に、保存されたオブジェクトを元のオブジェクトと比較します。
public class BlobTest
{
public int Id { get; set; }
public byte[] Blob { get; set; }
}
[TestMethod]
public void TestSaveBlob()
{
var conn = new SQLiteConnection("path_to_db");
conn.CreateTable<BlobTest>();
var expected = new BlobTest() { Id = 1 };
expected.Blob = new byte[10];
for (int idx = 0; idx < expected.Blob.Length; idx++)
{
expected.Blob[idx] = (byte)(idx + 1);
}
conn.Insert(expected);
var actual = conn.Table<BlobTest>().FirstOrDefault();
Assert.IsTrue(actual.Id != 0, string.Format("actual.Id == '{0}', expected non-zero", actual.Id));
Assert.IsTrue(actual.Id == expected.Id, string.Format("actual.Id == '{0}', expected '{1}'", actual.Id, expected.Id));
Assert.IsTrue(actual.Blob != null, string.Format("actual.Blob == '{0}', expected non-null", actual.Blob));
for (int idx = 0; idx < expected.Blob.Length; idx++)
{
Assert.IsTrue(expected.Blob[idx] == actual.Blob[idx], string.Format("actual.Blob[{0}] == '{1}', expected '{2}'", idx, actual.Blob[idx], expected.Blob[idx]));
}
}
データベースの内容を確認するために、SQLiteコマンドラインからこれを実行しました:
select id, hex(blob) from blobtest;
結果:
1|0102030405060708090A
于 2013-05-31T17:58:38.383 に答える