在DataGridView中显示来自数据库的图像
问题描述:
我有一个小问题,但我需要你的帮助。我已经成功地将图片插入数据库,因此我试图通过DataGridView
访问这些图片。每当我点击dgv
行/单元格,我需要图片出现在图片框中。这是我的代码。在DataGridView中显示来自数据库的图像
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.DateTime' 的对象键入 'System.Byte []'
谢谢您的帮助。
答
这里是你如何把它放在一个PictureBox
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);
}
您提供的代码没有任何地方指定'DateTime'类型里面。错误发生在哪里? – Steve
我知道这是我混淆 – Brownsugar
'(byte [])dt.Rows [0] [1];'我怀疑你使用了错误的列。 – Hendry