C# で PostgreSQL にラージオブジェクトとしてイメージを登録・表示する方法です。
Npgsql のヘルプにはファイルからイメージを読み取ってデータベースへ登録したり、データベースからファイルに書き出す方法は書いてありますが、データベースから直接 PictureBox にデータを流し込む方法が書いてありません。 以下のようにすると直接流し込めます。
            NpgsqlTransaction transaction = myConnection.BeginTransaction();
            LargeObjectManager lom = new LargeObjectManager(myConnection);
            LargeObject lo =  lom.Open(oid, LargeObjectManager.READWRITE);
            Byte[] byteBLOBData =  new Byte[0];
            byteBLOBData = lo.Read(lo.Size());
            MemoryStream stmBLOBData = new MemoryStream(byteBLOBData);
            this.pictureBox1.Image = Image.FromStream(stmBLOBData);
       
            lo.Close();
            transaction.Commit();
 
0 件のコメント:
コメントを投稿