目前我正在尝试为正在开发的音乐播放器动态生成一些按钮,并且我正在尝试从音乐标签中检索专辑封面,以便可以将其添加为按钮的背景图像。我目前的做法是有两个阅读器,一个选择关于专辑的所有信息,另一个从歌曲数据库中提取专辑中歌曲的目录位置,以便我可以使用taglib获取专辑的艺术信息,将其转换为System.Drawing.Image。但是为了做到这一点,我使用嵌套在阅读器中的阅读器,而且我似乎无法使嵌套阅读器的连接正常工作。目前我使用名为连接2都是具有相同的连接字符串每个读卡器/命令一个叫通一两个连接一个:使用两个嵌套在另一个中的阅读器
server=localhost; port=3306; userid=KEVIN; password=; database=kevin;
public void createAlbumButtons(int x, FlowLayoutPanel field)
{
MySqlCommand selectAlbumsTable = new MySqlCommand("SELECT * FROM Albums ORDER BY Artist ASC, Album DESC", connect);
MySqlDataReader readAlbumsTable = selectAlbumsTable.ExecuteReader();
while (readAlbumsTable.Read())
{
MySqlCommand selectAlbumIDFromFirstSong = new MySqlCommand("SELECT SongLocation FROM Music Where AlbumID= \"" + readAlbumsTable.GetString(0) + "\" LIMIT 1", connect2);
MySqlDataReader readAlbumIDFromFirstSong = selectAlbumIDFromFirstSong.ExecuteReader();
while (readAlbumIDFromFirstSong.Read())
{
string temp = readAlbumIDFromFirstSong.GetString(0).Replace("\\\"", "\\");
TagLib.File findAlbumArt = TagLib.File.Create(temp);
MemoryStream memstrm;
try
{
memstrm = new MemoryStream(findAlbumArt.Tag.Pictures[0].Data.Data);
albumCoverImage = System.Drawing.Image.FromStream(memstrm);
}
catch
{
albumCoverImage = KEVIN.Properties.Resources.NoAlbumArt;
}
field.Controls.Add(AttachMethodToButton(new Button
{
Name = "Album" + readAlbumsTable.GetString(0),
ForeColor = Color.WhiteSmoke,
Text = readAlbumsTable.GetString(1) + "\n" + readAlbumsTable.GetString(2),
TextAlign = ContentAlignment.BottomCenter,
Size = new Size(130, 130),
BackgroundImage = albumCoverImage,
BackgroundImageLayout = ImageLayout.Zoom,
FlatStyle = FlatStyle.Flat,
FlatAppearance =
{
BorderSize = 1,
BorderColor = ColorTranslator.FromHtml("#444444"),
},
},() => openAlbumForm()));
x++;
}
}
}
任何帮助,将不胜感激
非常感谢
- 罗斯
这是评论。 – mybirthname
@mybirthname不,这是帕特里克。 – CodeCaster