0
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 具有 OLE 对象数据类型我已经在字段中手动插入了一个 .bmp 图像现在我想在图片框中检索该图像但在运行时我收到此错误“无法将类型 'object' 隐式转换为 'System.Drawing.Image'。存在显式转换(您是否缺少演员表?)”

4

1 回答 1

0

您需要有Image类型对象来设置图片框图像,因此您可以使用内存流和Image.FromStream方法来获取图像

byte[] bimg= (byte[])ds.Tables[0].Rows[0][7];
MemoryStream mstream = new MemoryStream(bimg);
pictureBox1.Image = Image.FromStream(mstream);
于 2013-05-20T09:46:47.393 回答