private void Profile_Load(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\Users\jay.desai\Documents\Visual Studio 2008\Projects\Employee Profile\Employee.mdb");
OleDbCommand cmd = new OleDbCommand("select * from Profile where Emp_No=" + txtEmployeeNo.Text + "", con);
cmd.CommandType = CommandType.Text;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds, "Profile");
txtEmployeeNo.Text = ds.Tables[0].Rows[0][0].ToString();
txtName.Text = ds.Tables[0].Rows[0][1].ToString();
txtAddress.Text = ds.Tables[0].Rows[0][2].ToString();
txtSex.Text = ds.Tables[0].Rows[0][3].ToString();
txtMobNo.Text = ds.Tables[0].Rows[0][4].ToString();
dtp.Text = ds.Tables[0].Rows[0][5].ToString();
textBox1.Text = ds.Tables[0].Rows[0][6].ToString();
pictureBox1.Image = ds.Tables[0].Rows[0][7];
}
我在ms访问中创建了一个数据库,其中有一个名为Profile的表,其中包含一个字段Photo has OLE Object Datatype我在字段中手动插入了一个.bmp图像现在我想在图片框中检索该图像但是在运行时我收到此错误“无法将类型'对象'隐式转换为'System.Drawing.Image'。存在显式转换(您是否错过了转换?)”
答案 0 :(得分:0)
您需要Image
类型对象来设置图片框图像,这样您就可以使用内存流和Image.FromStream
方法来获取图像
byte[] bimg= (byte[])ds.Tables[0].Rows[0][7];
MemoryStream mstream = new MemoryStream(bimg);
pictureBox1.Image = Image.FromStream(mstream);