2
OleDbCommand and = new OleDbCommand();
c.Open();
and.Connection = c;
and.CommandText = "SELECT * FROM MaleShoes WHERE IDhere=ID ";
OleDbDataReader read = and.ExecuteReader();
while (read.Read())
{
    label6.Text = (read[1].ToString());
    textBox1.Text = (read[2].ToString());
    pictureBox1.Image = (read[3].ToString());  
}

c.Close();

このエラーが発生しました:

エラー1タイプ「string」を「System.Drawing.Image」に暗黙的に変換できません

どうすれば修正できますか?

私の写真は私のデータベースの3列目にあります。

4

4 に答える 4

5

データベース列に画像ファイルへのパスが含まれている場合は、次のように記述します。

pictureBox1.Image = Image.FromFile((string)read[3]);

画像データ(バイナリ)の場合は、次のように記述します。

var bytes = (byte[])read[3];
using(MemoryStream ms = new MemoryStream(bytes))
{
    pictureBox1.Image = Image.FromStream(ms);
}
于 2013-03-05T07:14:02.980 に答える
4

この助けを願っています(バイナリを保存している場合):

pictureBox1.Image = byteArrayToImage((byte[])read[3]);  

そしてあなたの方法

public Image byteArrayToImage(byte[] byteArrayIn)
{
     MemoryStream ms = new MemoryStream(byteArrayIn);
     Image returnImage = Image.FromStream(ms);
     return returnImage;
}
于 2013-03-05T07:13:29.473 に答える
1

これも使えます

  byte[] imagebyte = (byte[])read[3].ToString();

  MemoryStream ms = new MemoryStream();
  ms.Write(imagebyte, 0, imagebyte.Length);
  Bitmap bmp = new Bitmap(ms);
  pictureBox1.Image = bmp;
于 2013-03-05T07:27:16.817 に答える
0

あなたはこれを試すことができます:

MemoryStream ms = new MemoryStream((byte[])read[1]);

pictureBox1.Image = Image.FromStream(ms);
于 2013-03-05T07:23:28.433 に答える