从访问数据库中检索图像到图片框

Posted

技术标签:

【中文标题】从访问数据库中检索图像到图片框【英文标题】:Retrieve Image to a picturebox from access database 【发布时间】:2015-04-05 18:55:32 【问题描述】:

我正在尝试使用列表框选择事件从访问数据库中检索图像

我使用以下代码将数据保存到数据库:

command.CommandText = "insert into EmployeeInfo (FirstName,LastName,Pay,Pic) values ('" + txt_fname.Text + "' , '" + txt_lname.Text + "' , '" + txt_pay.Text + "' , @productpic)";
            MemoryStream stream = new MemoryStream();
            pb1.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
            byte[] pic = stream.ToArray();
            command.Parameters.AddWithValue("@productpic", pic);

我正在使用以下代码检索数据:

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        
            connection.Open();

            OleDbCommand command = new OleDbCommand();
            command.Connection = connection;
            string query = "select * from EmployeeInfo where FirstName = '" + listBox1.Text +"'";
            command.CommandText = query;
            OleDbDataReader reader = command.ExecuteReader();
            while (reader.Read()) 
                list_fname.Text = reader["FirstName"].ToString();
                list_lname.Text = reader["LastName"].ToString();
                list_dob.Text = reader["DoB"].ToString();
            
            connection.Close();
        

现在我要做的是检索与每一行关联的图片,字段名称为 Pic 到图片框中,并在 while 循环中与其他数据一起显示。我见过其他人提出的几个问题,但每个人都在使用 datagridview 来检索数据,在我的情况下,我试图在列表框选择事件中进行。

我们将不胜感激任何形式的帮助。提前致谢 。

【问题讨论】:

参考这个***.com/a/2217617/4059942 我已经找到了解决方案。谢谢。 那么请在此处添加您的解决方案作为答案,以便其他用户稍后找到。 添加了解决方案。谢谢 【参考方案1】:

在列表框选择事件的while循环中调用了这个函数:

void loadpicture()
            


                OleDbCommand command = new OleDbCommand();
                command.Connection = connection;
                command.CommandText = "select pic from EmployeeInfo where FirstName = '" + listBox1.Text + "'";
                OleDbDataAdapter da = new OleDbDataAdapter(command);
                DataSet ds = new DataSet();
                da.Fill(ds);
                byte[] content = (byte[])ds.Tables[0].Rows[0].ItemArray[0];
                MemoryStream stream = new MemoryStream(content);
                pb1.Image = Image.FromStream(stream);

            

【讨论】:

以上是关于从访问数据库中检索图像到图片框的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中从 Access 数据库存储和检索图像

如何将图像从一个图片框传输到另一个图片框? VB.NET 和 SQL

从mysql中检索图像并设置为pictureBox C#

想将指纹图像保存在数据库中,也想检索相同的图像

从检索到的 firebase 数据在 TableView 上快速设置图像

拉拉维尔。从 SQL SERVER 检索图像。数据类型:图片