在DataGridView中显示来自数据库的图像

时间:2016-04-15 02:57:52

标签: c#

我有小问题,但我需要你的帮助。我已成功将图片插入到数据库中,因此我尝试通过DataGridView访问这些图像。每当我点击dgv行/单元格时,我都需要将图片显示在图片框中。这是我的代码。

SqlConnection con = new SqlConnection(ConnectionString);
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Candidates WHERE CandidateID = '" + dataGridViewCandidate.SelectedRows[0].Cells[0].Value.ToString() + "'", con);
DataTable dt = new DataTable();
da.Fill(dt);
//dataGridViewCandidate.DataSource = dt;
byte[] binaryimage = (byte[])dt.Rows[0][1];
Bitmap image;
using (MemoryStream stream = new MemoryStream(binaryimage))
{
    image = new Bitmap(stream);
}
EmployeePhoto.Image = image;

我得到的错误在下面;

  

无法投射类型&System;日期时间'输入' System.Byte []'

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

以下是将其放入图片框的方式

SqlCommand cmd = new SqlCommand("SELECT Image FROM tableName",yourConnectionStringHere);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.fill(ds);
foreach(DataRow dr in ds.Tables[0].Rows)
{
    Byte[] data = new Byte[0];
     data = (Byte[])(dr["ImageColumnName"]);
    MemoryStream ms= new MemoryStream(data);
    yourPictureBoxID.Image= Image.FromStream(ms);
}