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アクセスで1つのデータベースを作成しました.1つのフィールドを含むProfileと呼ばれる1つのテーブルがあります写真にはOLEオブジェクトデータ型があります.フィールドに.bmp画像を手動で挿入しました.pictureboxでその画像を取得したいのですが、実行時に私はこのエラーが発生しました「タイプ 'object' を 'System.Drawing.Image' に暗黙的に変換できません。明示的な変換が存在します (キャストがありませんか?)」

4

1 に答える 1

0

ImagePicture Box Image を設定するには型オブジェクトが必要なので、メモリ ストリームとImage.FromStreamメソッドを使用して Image を取得できます。

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 に答える