从数据库中获取多个图像到 PictureBox

Fetching Multiple Images from Database into PictureBox

我想从我的数据库中获取多张图片,其中 data 是图片字段。这是我的代码,但它只显示第一张图片。请帮助。

SqlConnection sq = new SqlConnection(@"Data Source=DESKTOP-GH3KCDH\SQLEXPRESS;Initial Catalog=Project1;User ID=sa;Password=Salma0300.");
String st = "select data FROM Picture";
sq.Open();
PictureBox[] pb = { pictureBox1,pictureBox2,pictureBox3,pictureBox4,pictureBox5,pictureBox6,pictureBox7,pictureBox8};

    MemoryStream stream = new MemoryStream();
    SqlCommand sqlcom = new SqlCommand(st, sq);
    byte[] image = (byte[])sqlcom.ExecuteScalar();
    stream.Write(image,0,image.Length);
    Bitmap bitmap = new Bitmap(stream);
    pb[1].Image = bitmap;
    pb[2].Image = bitmap;

您有很多问题。

即使您选择了整个 table,也只抓取了 1 张图像。

byte[] image = (byte[])sqlcom.ExecuteScalar();

您需要遍历行。使用 ExecuteReader() 而不是 ExecuteScalar 以获得 SqlDataReader 对象。然后继续从 reader 调用 Read(),直到没有更多的记录或没有更多的图片框可以填充。

https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader(v=vs.110).aspx

您只使用了一个位图

Bitmap bitmap = new Bitmap(stream);
pb[1].Image = bitmap;
pb[2].Image = bitmap;

看到问题了吗?您加载了一个 bitmap 并将您的盒子设置为完全相同的图像。遍历上面提到的所有记录本来就可以让您看到问题并更正它。