C#WPF显示来自Mysql的图像
我是一名学生,我不擅长编程。 我在mysql数据库中为每个玩家保存了图像。我创建了一个程序,可以从数据库中列出一些足球运动员。当我单击datagrid中列出的播放器时,会出现一个新窗口,其中包含有关该播放器的信息。一切正常,但现在我想在数据库的信息窗口中显示所选播放器的图片。有人能帮我吗?我的英语不是最好的(我17岁),所以我希望你能理解我的意思 这是我试图做的,但我不知道如何继续。另外,它在WPF中C#WPF显示来自Mysql的图像,c#,mysql,wpf,image,C#,Mysql,Wpf,Image,我是一名学生,我不擅长编程。 我在mysql数据库中为每个玩家保存了图像。我创建了一个程序,可以从数据库中列出一些足球运动员。当我单击datagrid中列出的播放器时,会出现一个新窗口,其中包含有关该播放器的信息。一切正常,但现在我想在数据库的信息窗口中显示所选播放器的图片。有人能帮我吗?我的英语不是最好的(我17岁),所以我希望你能理解我的意思 这是我试图做的,但我不知道如何继续。另外,它在WPF中 MySqlCommand cmd = new MySqlCommand("SELECT Bi
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()
只需事先使用
字节[]
强制转换即可:
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中,使用
位图图像
:
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;
}
保存图像的列的类型是什么? 你可以试试这样的
Image tmp = ImageConverter.ConvertFrom(rdr1.GetStream("photo"));
其中photo是您的专栏名称谢谢,但在这一行:
Image Image=new Bitmap(ms)代码>我收到一个错误,它说找不到“位图”。知道吗?@user3718026是的,您的对象没有包含位图类的程序集的引用。由于您使用的是WPF,只需将适当的图像添加到窗口中即可。请看我的更新。缺少一件事。必须设置imageSource.CacheOption=BitmapCacheOption.OnLoad
(在EndInit
之前),以便在关闭流之前加载位图。在MemoryStream上,它可能在没有该选项的情况下工作,但这只是偶然的。如果要立即关闭图像流,则需要设置此选项。@YairNevet我还有一个问题,我在这一行的数据处遇到一个错误:使用(System.IO.MemoryStream ms=new System.IO.MemoryStream(data))
表示数据不在上下文中。先谢谢你。