C#WPF从Mysql显示图像

时间:2014-06-08 15:07:15

标签: c# mysql wpf image

我是学生,我不擅长编程。 我在每个玩家的mysql数据库中保存了图像。我创建了一个程序,我可以从我的数据库中列出一些足球运动员。当我点击datagrid中列出的播放器时,会出现一个新窗口,其中包含有关播放器的信息。一切正常,但现在我希望所选播放器的图片显示在数据库的信息窗口中。有谁能够帮我?我的英语不是最好的(我17岁),所以我希望你能理解我的意思。

这是我试图做但我不知道如何继续。 PS。它在WPF中。

 MySqlCommand cmd = new MySqlCommand("SELECT Bilder FROM spieler WHERE Bilder='{8}'");
        MySqlDataReader rdr1 = cmd.ExecuteReader();

        try
        {
            conn.Open();
            while (rdr1.Read())
            {
                // image1... I don't know what to write here
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show("Fehler: " + ex);
        }

        rdr1.Close()

2 个答案:

答案 0 :(得分:1)

事先使用byte[]投射来获取它:

while (rdr1.Read())
{
   byte[] data = (byte[])reader[0]; // 0 is okay if you only selecting one column
   //And use:
   using (System.IO.MemoryStream ms = new System.IO.MemoryStream(data))
   {
      Image image = new Bitmap(ms);
   }
}

<强>更新 在WPF中,使用BitmapImage

using (System.IO.MemoryStream ms = new System.IO.MemoryStream(data))
{
    var imageSource = new BitmapImage();
    imageSource.BeginInit();
    imageSource.StreamSource = ms;
    imageSource.CacheOption = BitmapCacheOption.OnLoad;
    imageSource.EndInit();

    // Assign the Source property of your image
    yourImage.Source = imageSource;
}

答案 1 :(得分:0)

您保存图片的列类型是什么? 你可以试试这样的事情

Image tmp = ImageConverter.ConvertFrom(rdr1.GetStream("photo"));

其中照片是列的名称