从表中读取二进制数据

本文关键字:二进制 数据 读取 | 更新日期: 2023-09-27 18:04:28

我有PostgreSQL 9.2,与这个表:

CREATE TABLE "Task"
(
  "taskID" serial NOT NULL,
  "taskType" text NOT NULL,
  "taskComment" text NOT NULL,
  "taskDate" date NOT NULL,
  "taskeImage" bytea,
  CONSTRAINT "Task_pkey" PRIMARY KEY ("taskID")
)

表已经被记录填充。我只是想读取taskeImage并将其显示在pictureBox1中。

这是我的尝试:

//some initial code goes here
NpgsqlDataReader dr = command.ExecuteReader();
dr.Read();
pictureBox1.Image=dr[4];
conn.Close();

从表中读取二进制数据

PictureBox.Image是Image类型,dr[4]可能会返回byte[]。您需要从byte []创建一个图像,如下所示:

using (MemoryStream ms = new MemoryStream((byte[])dr[4]))
{
    pictureBox1.Image= Image.FromStream(ms);
}