项目名称: KTV 点歌系统 -- 指导老师原玉明 经过一周多的时间,终于完成的我的这个 KTV 项目,说实话,做这个项目我收获了不少,难点也非常多,不过经过重重磨难,总算是过来了。不简单呀! 这个项目主要分为前后台。 前台主要实现的功能是:歌星点歌,拼音
项目名称:KTV点歌系统
--指导老师原玉明
经过一周多的时间,终于完成的我的这个KTV项目,说实话,做这个项目我收获了不少,难点也非常多,不过经过重重磨难,总算是过来了。不简单呀!
这个项目主要分为前后台。
前台主要实现的功能是:歌星点歌,拼音点歌,字数点歌,
类型选择,金曲排行,一些切歌,重唱,已点歌曲列表,主要是这些功能。
后台主要实现的功能是:增加歌手,增加歌曲,修改歌曲路径,修改歌手图片路径。
首先先看前台:
前台核心类:
SqlHelper类(负责连接数据库):
<span style="color: #008000;">//</span><span style="color: #008000;">连接字符串</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">string</span> str = <span style="color: #800000;">"</span><span style="color: #800000;">Data Source=HYJ-PC;Initial Catalog=MyKTV;User ID=sa;pwd=123</span><span style="color: #800000;">"</span>;
KtvHelper类(保存歌曲的目录;保存歌手图片的目录)
<span style="color: #008000;">//</span><span style="color: #008000;">保存歌曲的目录</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">string</span> songURL = <span style="color: #800000;">""</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">保存歌手图片的目录</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">string</span> singer_photoURL = <span style="color: #800000;">""</span><span style="color: #000000;">; FrmByValue类(窗体对象之间的传值) </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> frmsonglist frmsl; </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> FrmMain frM; </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> SelectedSong ss;
Song类(歌曲的信息及实现歌曲状态的一个切换(已播放;未播放;重播;切歌)):
<span style="color: #008000;">//</span><span style="color: #008000;">定义一个枚举:歌曲播放状态</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">enum</span><span style="color: #000000;"> SongPlayState { unplayed, played, newplayed, cut } </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> Song { </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> SongName { </span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span><span style="color: #000000;"> songName; } </span><span style="color: #0000ff;">set</span> { songName =<span style="color: #000000;"> value; } } </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> SongURL { </span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span><span style="color: #000000;"> songURL; } </span><span style="color: #0000ff;">set</span> { songURL =<span style="color: #000000;"> value; } } </span><span style="color: #0000ff;">internal</span><span style="color: #000000;"> SongPlayState Playseat { </span><span style="color: #0000ff;">get</span> { <span style="color: #0000ff;">return</span><span style="color: #000000;"> playseat; } </span><span style="color: #0000ff;">set</span> { playseat =<span style="color: #000000;"> value; } } </span><span style="color: #0000ff;">PRivate</span> <span style="color: #0000ff;">string</span> songName;<span style="color: #008000;">//</span><span style="color: #008000;">歌曲名称字段</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">string</span> songURL;<span style="color: #008000;">//</span><span style="color: #008000;">歌曲存放路径字段 </span><span style="color: #008000;">//</span><span style="color: #008000;">让歌曲的播放状态默认为未播放;</span> <span style="color: #0000ff;">private</span> SongPlayState playseat =<span style="color: #000000;"> SongPlayState.unplayed; </span><span style="color: #008000;">//</span><span style="color: #008000;">把歌曲状态改为已播放</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> SetSongPlayed() { </span><span style="color: #0000ff;">this</span>.playseat =<span style="color: #000000;"> SongPlayState.played; } </span><span style="color: #008000;">//</span><span style="color: #008000;">把歌曲状态改为重唱</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> SetnewSong() { </span><span style="color: #0000ff;">this</span>.playseat =<span style="color: #000000;"> SongPlayState.newplayed; } </span><span style="color: #008000;">//</span><span style="color: #008000;">把歌曲状态改为一切歌</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> Setcut() { </span><span style="color: #0000ff;">this</span>.playseat =<span style="color: #000000;"> SongPlayState.cut; }</span>
PlayList类(播放歌曲的核心内容,功能(实现播放,切歌,重唱)):
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span><span style="color: #000000;"> PlayList { </span><span style="color: #008000;">//</span><span style="color: #008000;">定义一个数组,默认可以储存50首歌</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> Song[] songList=<span style="color: #0000ff;">new</span> Song[<span style="color: #800080;">50</span>];<span style="color: #008000;">//</span><span style="color: #008000;">歌曲播放列表数组</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">int</span> songIndex;<span style="color: #008000;">//</span><span style="color: #008000;">当前播放的歌曲在数组的索引</span> <span style="color: #0000ff;">#region</span> 添加播放歌曲 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">bool</span><span style="color: #000000;"> AddSong(Song song) { </span><span style="color: #0000ff;">bool</span> happy = <span style="color: #0000ff;">false</span><span style="color: #000000;">; </span><span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = <span style="color: #800080;">0</span>; i ) { <span style="color: #0000ff;">if</span> (songList[i] == <span style="color: #0000ff;">null</span><span style="color: #000000;">) { songList[i] </span>=<span style="color: #000000;"> song; happy </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; </span><span style="color: #0000ff;">break</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> happy; } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 当前播放的歌曲名称 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> PlayingSongName() { </span><span style="color: #0000ff;">string</span> songName = <span style="color: #800000;">""</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 歌曲名称</span> <span style="color: #0000ff;">if</span>(songList.Length><span style="color: #000000;">songIndex) { </span><span style="color: #0000ff;">if</span> (songList[songIndex] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { songName </span>=<span style="color: #000000;"> songList[songIndex].SongName; } } </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> songName; } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 获取当前播放的歌曲 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> Song GetPlayingSong() { </span><span style="color: #0000ff;">if</span>(songIndexsongList.Length) { <span style="color: #0000ff;">if</span> (songList[songIndex] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> songList[songIndex]; } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> { </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">null</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">null</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 下一首要播放的歌曲名称 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">string</span><span style="color: #000000;"> NextSongName() { </span><span style="color: #0000ff;">string</span> songName = <span style="color: #800000;">""</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 歌曲名称</span> <span style="color: #0000ff;">if</span>(songIndexsongList.Length) { <span style="color: #0000ff;">if</span> (songList.Length > songIndex + <span style="color: #800080;">1</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span> (songList[songIndex + <span style="color: #800080;">1</span>] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { songName </span>= songList[songIndex + <span style="color: #800080;">1</span><span style="color: #000000;">].SongName; } } } </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> songName; } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 切歌: <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> CutSong() { </span><span style="color: #008000;">//</span><span style="color: #008000;">代表切歌的位置</span> <span style="color: #0000ff;">int</span> i =<span style="color: #000000;"> songIndex; </span><span style="color: #0000ff;">if</span> (songList[i]!=<span style="color: #0000ff;">null</span><span style="color: #000000;">) { songList[i].Setcut(); } </span><span style="color: #0000ff;">while</span> (songList[i] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { songList[i] </span>= songList[i + <span style="color: #800080;">1</span><span style="color: #000000;">]; i</span>++<span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;"> 如果到达数组最后一个元素,就将最后一个元素指向空</span> <span style="color: #0000ff;">if</span> (i ==<span style="color: #000000;"> songList.Length) { songList[i] </span>= <span style="color: #0000ff;">null</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">if</span> (songList[<span style="color: #800080;">0</span>] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { songList[</span><span style="color: #800080;">0</span>].Playseat =<span style="color: #000000;"> SongPlayState.played; } } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 重放当前歌曲 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> PlayAgain() { </span><span style="color: #0000ff;">if</span> (songList[songIndex] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { songList[songIndex].SetnewSong(); } } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #0000ff;">#region</span> 播放下一首 <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> MoveOn() { </span><span style="color: #0000ff;">if</span>(songIndexsongList.Length) { <span style="color: #0000ff;">if</span> (songList[songIndex] != <span style="color: #0000ff;">null</span> && songList[songIndex].Playseat ==<span style="color: #000000;"> SongPlayState.newplayed) { songList[songIndex].SetSongPlayed(); } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> { songIndex</span>++<span style="color: #000000;">; } } } </span><span style="color: #0000ff;">#endregion</span><span style="color: #000000;"> }</span>
实现窗体拖动的代码(找到对应事件双击):
<span style="color: #0000ff;">#region</span> 让窗体实现拖动 <span style="color: #0000ff;">public</span> Point mouSEOffset; <span style="color: #008000;">//</span><span style="color: #008000;">记录鼠标指针的坐标 </span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> isMouseDown = <span style="color: #0000ff;">false</span>; <span style="color: #008000;">//</span><span style="color: #008000;">记录鼠标按键是否按下 </span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_MouseDown(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, MouseEventArgs e) { </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> xOffset; </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> yOffset; </span><span style="color: #0000ff;">if</span> (e.Button ==<span style="color: #000000;"> MouseButtons.Left) { xOffset </span>= -e.X -<span style="color: #000000;"> SystemInformation.FrameBorderSize.Width; yOffset </span>= -e.Y - SystemInformation.CaptionHeight -<span style="color: #000000;"> SystemInformation.FrameBorderSize.Height; mouseOffset </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> Point(xOffset, yOffset); isMouseDown </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_MouseMove(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, MouseEventArgs e) { </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (isMouseDown) { Point mousePos </span>=<span style="color: #000000;"> Control.MousePosition; mousePos.Offset(mouseOffset.X </span>+ <span style="color: #800080;">5</span>, mouseOffset.Y + <span style="color: #800080;">30</span><span style="color: #000000;">); Location </span>=<span style="color: #000000;"> mousePos; } } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_MouseUp(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, MouseEventArgs e) { </span><span style="color: #008000;">//</span><span style="color: #008000;"> 修改鼠标状态isMouseDown的值 </span><span style="color: #008000;">//</span><span style="color: #008000;"> 确保只有鼠标左键按下并移动时,才移动窗体 </span> <span style="color: #0000ff;">if</span> (e.Button ==<span style="color: #000000;"> MouseButtons.Left) { isMouseDown </span>= <span style="color: #0000ff;">false</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">#endregion</span>
主界面:(FrmMain)
<span style="color: #008000;">//</span><span style="color: #008000;">当前播放的歌曲</span> <span style="color: #0000ff;">public</span><span style="color: #000000;"> Song songname; </span><span style="color: #0000ff;">#region</span> 让窗体实现拖动 <span style="color: #0000ff;">public</span> Point mouseOffset; <span style="color: #008000;">//</span><span style="color: #008000;">记录鼠标指针的坐标 </span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">bool</span> isMouseDown = <span style="color: #0000ff;">false</span>; <span style="color: #008000;">//</span><span style="color: #008000;">记录鼠标按键是否按下 </span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_MouseDown(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, MouseEventArgs e) { </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> xOffset; </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> yOffset; </span><span style="color: #0000ff;">if</span> (e.Button ==<span style="color: #000000;"> MouseButtons.Left) { xOffset </span>= -e.X -<span style="color: #000000;"> SystemInformation.FrameBorderSize.Width; yOffset </span>= -e.Y - SystemInformation.CaptionHeight -<span style="color: #000000;"> SystemInformation.FrameBorderSize.Height; mouseOffset </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> Point(xOffset, yOffset); isMouseDown </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_MouseMove(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, MouseEventArgs e) { </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (isMouseDown) { Point mousePos </span>=<span style="color: #000000;"> Control.MousePosition; mousePos.Offset(mouseOffset.X </span>+ <span style="color: #800080;">5</span>, mouseOffset.Y + <span style="color: #800080;">30</span><span style="color: #000000;">); Location </span>=<span style="color: #000000;"> mousePos; } } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_MouseUp(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, MouseEventArgs e) { </span><span style="color: #008000;">//</span><span style="color: #008000;"> 修改鼠标状态isMouseDown的值 </span><span style="color: #008000;">//</span><span style="color: #008000;"> 确保只有鼠标左键按下并移动时,才移动窗体 </span> <span style="color: #0000ff;">if</span> (e.Button ==<span style="color: #000000;"> MouseButtons.Left) { isMouseDown </span>= <span style="color: #0000ff;">false</span><span style="color: #000000;">; } } </span><span style="color: #0000ff;">#endregion</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 点击退出按钮触发的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnexit_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { application.Exit(); } </span><span style="color: #008000;">//</span><span style="color: #008000;"> Login事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> FrmMain_Load(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { </span><span style="color: #008000;">//</span><span style="color: #008000;">把整个窗体对象赋给FrmByValue的静态frM对象</span> FrmByValue.frM = <span style="color: #0000ff;">this</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">运行窗体时启动定时器</span> <span style="color: #0000ff;">this</span><span style="color: #000000;">.tilist_played.Start(); </span><span style="color: #008000;">//</span><span style="color: #008000;">调用查询返回路径的方法,传入SQL语句 </span><span style="color: #008000;">//</span><span style="color: #008000;"> 歌曲路径</span> <span style="color: #0000ff;">string</span> sql = <span style="color: #800000;">"</span><span style="color: #800000;">select resource_path from Resource_path where resource_id=1</span><span style="color: #800000;">"</span><span style="color: #000000;">; KtvHelper.songURL </span>=<span style="color: #000000;"> song_path(sql); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 歌手图片路径</span> <span style="color: #0000ff;">string</span> sql1 = <span style="color: #800000;">"</span><span style="color: #800000;">select resource_path from Resource_path where resource_id=2</span><span style="color: #800000;">"</span><span style="color: #000000;">; KtvHelper.singer_photoURL </span>=<span style="color: #000000;"> song_path(sql1); } </span><span style="color: #808080;">///</span> <span style="color: #808080;"><summary></summary></span> <span style="color: #808080;">///</span><span style="color: #008000;"> 查询返回路径的方法 </span><span style="color: #808080;">///</span> <span style="color: #808080;"></span> <span style="color: #808080;">///</span> <span style="color: #808080;"><param name="sql"></span><span style="color: #008000;">传入sql语句</span><span style="color: #808080;"></span> <span style="color: #808080;">///</span> <span style="color: #808080;"><returns></returns></span><span style="color: #008000;">根据传入的sql语句返回不同的路径(1.resource_id=1歌曲路径:resource_id=2歌手图片路径)</span><span style="color: #808080;"></span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">string</span> song_path(<span style="color: #0000ff;">string</span><span style="color: #000000;"> sql) { SqlConnection con </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlConnection(SqlHelper.str); SqlCommand cmd </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlCommand(sql, con); </span><span style="color: #0000ff;">string</span> path = <span style="color: #800000;">""</span><span style="color: #000000;">; </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> { con.Open(); SqlDataReader dr </span>=<span style="color: #000000;"> cmd.ExecuteReader(); </span><span style="color: #0000ff;">if</span> (dr != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (dr.HasRows) { </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (dr.Read()) { path </span>= dr[<span style="color: #800000;">"</span><span style="color: #800000;">resource_path</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); } } } } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception) { MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">网络异常!</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">finally</span><span style="color: #000000;"> { con.Close(); } </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> path; } </span><span style="color: #008000;">//</span><span style="color: #008000;">点击显示播放触发的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnshow_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { </span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">this</span>.Width == <span style="color: #800080;">567</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">this</span>.Width = <span style="color: #0000ff;">this</span>.Width + <span style="color: #800080;">208</span><span style="color: #000000;">; btnshow.Text </span>= <span style="color: #800000;">"</span><span style="color: #800000;">隐 藏 播 放</span><span style="color: #800000;">"</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">this</span>.Width > <span style="color: #800080;">567</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">this</span>.Width = <span style="color: #800080;">567</span><span style="color: #000000;">; btnshow.Text </span>= <span style="color: #800000;">"</span><span style="color: #800000;">显 示 播 放</span><span style="color: #800000;">"</span><span style="color: #000000;">; } } </span><span style="color: #008000;">//</span><span style="color: #008000;">已点歌曲窗体</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnopen_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { SelectedSong frm </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SelectedSong(); </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Hide(); frm.Show(); } </span><span style="color: #008000;">//</span><span style="color: #008000;"> 点击拼音点歌触发的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnspell_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { frmbySongname frm </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> frmbySongname(); </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Hide(); frm.Show(); } </span><span style="color: #008000;">//</span><span style="color: #008000;">点击字数点歌触发的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnnum_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { frmbyziSong frm </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> frmbyziSong(); </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Hide(); frm.Show(); } </span><span style="color: #008000;">//</span><span style="color: #008000;">点击类型点歌触发的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btntype_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { frmbyTypesong frm </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> frmbyTypesong(); </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Hide(); frm.Show(); } </span><span style="color: #008000;">//</span><span style="color: #008000;">定时扫描歌曲列表,显示当前播放歌曲的名称</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> ShowPlayingSongName() { txtopen.Text </span>=<span style="color: #000000;"> PlayList.PlayingSongName(); txtnext.Text </span>=<span style="color: #000000;"> PlayList.NextSongName(); } </span><span style="color: #008000;">//</span><span style="color: #008000;">播放歌曲的方法</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> PlaySong() { </span><span style="color: #008000;">//</span><span style="color: #008000;"> 获取当前要播放的歌曲</span> <span style="color: #0000ff;">this</span>.songname =<span style="color: #000000;"> PlayList.GetPlayingSong(); </span><span style="color: #0000ff;">if</span> (songname != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">#region</span> 播放时显示歌曲图片 <span style="color: #0000ff;">string</span> name =<span style="color: #000000;"> songname.SongName; </span><span style="color: #0000ff;">string</span> sql = <span style="color: #800000;">"</span><span style="color: #800000;">select singer_id from song_info where song_name ='</span><span style="color: #800000;">"</span> + name + <span style="color: #800000;">"</span><span style="color: #800000;">' </span><span style="color: #800000;">"</span><span style="color: #000000;">; SqlConnection con </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlConnection(SqlHelper.str); con.Open(); SqlCommand cmd </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlCommand(sql, con); </span><span style="color: #0000ff;">int</span> singerid =<span style="color: #000000;"> Convert.ToInt32(cmd.ExecuteScalar()); con.Close(); </span><span style="color: #0000ff;">string</span> sql1 = <span style="color: #800000;">"</span><span style="color: #800000;">select singer_photo from singer_info where singer_id=</span><span style="color: #800000;">"</span> + singerid + <span style="color: #800000;">""</span><span style="color: #000000;">; SqlConnection con1 </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlConnection(SqlHelper.str); con1.Open(); SqlCommand cmd1 </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlCommand(sql1, con1); </span><span style="color: #0000ff;">string</span> singer_photo =<span style="color: #000000;"> cmd1.ExecuteScalar().ToString(); con1.Close(); plist.Image </span>= Image.FromFile(KtvHelper.singer_photoURL +<span style="color: #000000;"> singer_photo); </span><span style="color: #0000ff;">#endregion</span> <span style="color: #008000;">//</span><span style="color: #008000;"> 将当前歌曲播放状态设为已播放</span> <span style="color: #0000ff;">this</span><span style="color: #000000;">.songname.SetSongPlayed(); </span><span style="color: #008000;">//</span><span style="color: #008000;"> 得到当前播放歌曲的路径</span> Playerlist.URL = KtvHelper.songURL +<span style="color: #000000;"> songname.SongURL; } } </span><span style="color: #008000;">//</span><span style="color: #008000;">计时器控件的Tick事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> tilist_played_Tick(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ShowPlayingSongName(); </span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">this</span>.songname==<span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.PlaySong(); } </span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">this</span>.Playerlist.playState ==<span style="color: #000000;"> WMPLib.WMPPlayState.wmppsStopped) { </span><span style="color: #0000ff;">this</span>.songname = <span style="color: #0000ff;">null</span><span style="color: #000000;">; PlayList.MoveOn(); } </span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">this</span>.songname!=<span style="color: #0000ff;">null</span>&&<span style="color: #0000ff;">this</span>.songname.Playseat==<span style="color: #000000;">SongPlayState.cut) { </span><span style="color: #0000ff;">this</span>.Playerlist.URL = <span style="color: #800000;">""</span><span style="color: #000000;">; </span><span style="color: #0000ff;">this</span>.songname = <span style="color: #0000ff;">null</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">this</span>.songname != <span style="color: #0000ff;">null</span> && <span style="color: #0000ff;">this</span>.songname.Playseat ==<span style="color: #000000;"> SongPlayState.newplayed) { </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.PlaySong(); } } </span><span style="color: #008000;">//</span><span style="color: #008000;">点击切歌触发的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnnextsong_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { </span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">this</span>.songname != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { PlayList.CutSong(); } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> { MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">亲!你还没有添加歌曲</span><span style="color: #800000;">"</span><span style="color: #000000;">); } } </span><span style="color: #008000;">//</span><span style="color: #008000;">点击重唱触发的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnnew_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { </span><span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">this</span>.songname != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { PlayList.PlayAgain(); } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> { MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">亲!你还没有添加歌曲</span><span style="color: #800000;">"</span><span style="color: #000000;">); } } </span><span style="color: #008000;">//</span><span style="color: #008000;">点击金曲排行触发的时间</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnorderby_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { frmsonglist frm </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> frmsonglist(); frm.ph </span>= <span style="color: #800080;">1</span><span style="color: #000000;">; </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Hide(); frm.Show(); } </span><span style="color: #008000;">//</span><span style="color: #008000;">歌星点歌</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnswan_Click_1(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { Frmbyswangetsong frm </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> Frmbyswangetsong(); frm.Show(); </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Hide(); } </span><span style="color: #008000;">//</span><span style="color: #008000;">当鼠标进入控件可见状态是触发的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnswan_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnswan,</span><span style="color: #800000;">"</span><span style="color: #800000;">歌星点歌</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnspell_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnspell, </span><span style="color: #800000;">"</span><span style="color: #800000;">拼音点歌</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnnum_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnnum, </span><span style="color: #800000;">"</span><span style="color: #800000;">字数点歌</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btntype_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btntype, </span><span style="color: #800000;">"</span><span style="color: #800000;">类型选择</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnorderby_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnorderby, </span><span style="color: #800000;">"</span><span style="color: #800000;">金曲排行</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnnew_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnnew, </span><span style="color: #800000;">"</span><span style="color: #800000;">重唱</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnnextsong_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnnextsong, </span><span style="color: #800000;">"</span><span style="color: #800000;">切歌</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnopen_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnopen, </span><span style="color: #800000;">"</span><span style="color: #800000;">已点</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnfw_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnfw, </span><span style="color: #800000;">"</span><span style="color: #800000;">服务</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnexit_MouseEnter(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { ToolTip tp </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ToolTip(); tp.ShowAlways </span>= <span style="color: #0000ff;">true</span><span style="color: #000000;">; tp.SetToolTip(btnexit, </span><span style="color: #800000;">"</span><span style="color: #800000;">退出</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnfw_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">正在呼叫服务...</span><span style="color: #800000;">"</span><span style="color: #000000;">); }</span>
歌星点歌(Frmbyswangetsong):
<span style="color: #008000;">//</span><span style="color: #008000;">图片索引</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> index=<span style="color: #800080;">0</span><span style="color: #000000;">; </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">int</span> index_singer = <span style="color: #800080;">0</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">Load事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> Frmbyswangetsong_Load(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { </span><span style="color: #008000;">//</span><span style="color: #008000;">在显示当前窗体时,让第二个lvlisttwo和第三个lvlistthere控件不显示</span> lvlisttwo.Visible = <span style="color: #0000ff;">false</span><span style="color: #000000;">; lvlistthere.Visible </span>= <span style="color: #0000ff;">false</span><span style="color: #000000;">; </span><span style="color: #0000ff;">#region</span> 给第一个listview绑定数据 <span style="color: #008000;">//</span><span style="color: #008000;">给listview1绑定数据和图片</span> ListViewItem lv = <span style="color: #0000ff;">new</span> ListViewItem(<span style="color: #800000;">"</span><span style="color: #800000;">组合</span><span style="color: #800000;">"</span>, <span style="color: #800080;">0</span><span style="color: #000000;">); lv.Tag </span>= <span style="color: #800000;">"</span><span style="color: #800000;">组合</span><span style="color: #800000;">"</span><span style="color: #000000;">; ListViewItem lv1 </span>= <span style="color: #0000ff;">new</span> ListViewItem(<span style="color: #800000;">"</span><span style="color: #800000;">女歌手</span><span style="color: #800000;">"</span>, <span style="color: #800080;">1</span><span style="color: #000000;">); lv1.Tag </span>= <span style="color: #800000;">"</span><span style="color: #800000;">女</span><span style="color: #800000;">"</span><span style="color: #000000;">; ListViewItem lv2 </span>= <span style="color: #0000ff;">new</span> ListViewItem(<span style="color: #800000;">"</span><span style="color: #800000;">男歌手</span><span style="color: #800000;">"</span>, <span style="color: #800080;">2</span><span style="color: #000000;">); lv2.Tag </span>= <span style="color: #800000;">"</span><span style="color: #800000;">男</span><span style="color: #800000;">"</span><span style="color: #000000;">; lvlistone.Items.Add(lv); lvlistone.Items.Add(lv1); lvlistone.Items.Add(lv2); </span><span style="color: #0000ff;">#endregion</span><span style="color: #000000;"> } </span><span style="color: #008000;">//</span><span style="color: #008000;">点击lvlistone中项时触发的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> lvlistone_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { </span><span style="color: #008000;">//</span><span style="color: #008000;">如果没有选中lvlistone控件中的任何一项是不会显示第二个窗体 </span><span style="color: #008000;">//</span><span style="color: #008000;">让第二个出现的lvlisttwo和lvlistone显示在同一个位置</span> lvlisttwo.Location =<span style="color: #000000;"> lvlistone.Location; </span><span style="color: #008000;">//</span><span style="color: #008000;">如果选中一项,就把第二个llvlisttwo显示出来 </span><span style="color: #008000;">//</span><span style="color: #008000;">让第二个lvlisttwo显示</span> lvlisttwo.Visible = <span style="color: #0000ff;">true</span><span style="color: #000000;">; </span><span style="color: #0000ff;">if</span> (lvlistone.SelectedItems[<span style="color: #800080;">0</span>] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #008000;">//</span><span style="color: #008000;">给第二个listview控件动态绑定数据的方法</span> <span style="color: #000000;"> lvlisttwoadd(); } } </span><span style="color: #008000;">//</span><span style="color: #008000;">给第二个listview控件动态绑定数据的方法lvlisttwoadd();</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> lvlisttwoadd() { SqlConnection con </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlConnection(SqlHelper.str); </span><span style="color: #0000ff;">string</span> sql = <span style="color: #800000;">"</span><span style="color: #800000;">select * from singer_type</span><span style="color: #800000;">"</span><span style="color: #000000;">; SqlCommand cmd </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlCommand(sql, con); </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> { con.Open(); SqlDataReader dr </span>=<span style="color: #000000;"> cmd.ExecuteReader(); </span><span style="color: #0000ff;">if</span> (dr != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (dr.HasRows) { </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (dr.Read()) { </span><span style="color: #0000ff;">string</span> singertype_group = dr[<span style="color: #800000;">"</span><span style="color: #800000;">singertype_name</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); </span><span style="color: #0000ff;">int</span> id = Convert.ToInt32(dr[<span style="color: #800000;">"</span><span style="color: #800000;">singertype_id</span><span style="color: #800000;">"</span><span style="color: #000000;">]); ListViewItem lv </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ListViewItem(); lv.ImageIndex </span>= index++<span style="color: #000000;">; lv.Text </span>=<span style="color: #000000;"> singertype_group; lv.Tag</span>=<span style="color: #000000;"> id; </span><span style="color: #008000;">//</span><span style="color: #008000;"> MessageBox.Show(lvlisttwo.Tag.ToString());</span> <span style="color: #000000;"> lvlisttwo.Items.Add(lv); } } } } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception) { MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">网络异常!</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">finally</span><span style="color: #000000;"> { con.Close(); } } </span><span style="color: #008000;">//</span><span style="color: #008000;"> 03点击lvlisttwo中项时触发的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> lvlisttwo_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { lvlistthere.Items.Clear(); </span><span style="color: #008000;">//</span><span style="color: #008000;">如果没有选中lvlisttwo控件中的任何一项是不会显示第三个窗体 </span><span style="color: #008000;">//</span><span style="color: #008000;">如果选中一项,就把第二个llvlistthere显示出来</span> <span style="color: #0000ff;">if</span> (lvlisttwo.SelectedItems[<span style="color: #800080;">0</span>] != <span style="color: #0000ff;">null</span><span style="color: #000000;">) { lvlisttwo.Visible </span>= <span style="color: #0000ff;">false</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">让第三个出现的lvlistthere和lvlistone显示在同一个位置</span> lvlistthere.Location =<span style="color: #000000;"> lvlistone.Location; </span><span style="color: #008000;">//</span><span style="color: #008000;">让第三个lvlistthere显示</span> lvlistthere.Visible = <span style="color: #0000ff;">true</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">获取用户点击第一个listview是男歌手还是女歌手或者是组合</span> <span style="color: #0000ff;">string</span> singer_group = lvlistone.SelectedItems[<span style="color: #800080;">0</span><span style="color: #000000;">].Tag.ToString(); </span><span style="color: #008000;">//</span><span style="color: #008000;">获取用户点击点击第二个listview是哪个地区的id</span> <span style="color: #0000ff;">int</span> cityid = Convert.ToInt32(lvlisttwo.SelectedItems[<span style="color: #800080;">0</span><span style="color: #000000;">].Tag); SqlConnection con </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlConnection(SqlHelper.str); </span><span style="color: #0000ff;">string</span> sql = <span style="color: #800000;">"</span><span style="color: #800000;">select singer_name,singer_photo from singer_info where singer_sex ='</span><span style="color: #800000;">"</span> + singer_group + <span style="color: #800000;">"</span><span style="color: #800000;">' and singertype_id=</span><span style="color: #800000;">"</span>+cityid+<span style="color: #800000;">"</span> <span style="color: #800000;">"</span><span style="color: #000000;">; SqlCommand cmd </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> SqlCommand(sql,con); </span><span style="color: #0000ff;">try</span><span style="color: #000000;"> { con.Open(); SqlDataReader dr</span>=<span style="color: #000000;"> cmd.ExecuteReader(); </span><span style="color: #0000ff;">if</span>(dr!=<span style="color: #0000ff;">null</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(dr.HasRows) { </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (dr.Read()) { </span><span style="color: #008000;">//</span><span style="color: #008000;">获取到歌手姓名和歌手图片路径</span> <span style="color: #0000ff;">string</span> singer_name = dr[<span style="color: #800000;">"</span><span style="color: #800000;">singer_name</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); </span><span style="color: #0000ff;">string</span> singer_photo_url = dr[<span style="color: #800000;">"</span><span style="color: #800000;">singer_photo</span><span style="color: #800000;">"</span><span style="color: #000000;">].ToString(); </span><span style="color: #008000;">//</span><span style="color: #008000;">并接路径</span> <span style="color: #0000ff;">string</span> URL = KtvHelper.singer_photoURL +<span style="color: #000000;"> singer_photo_url; imgsingerinfo .Images.Add(Image.FromFile(URL)); ListViewItem lv </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> ListViewItem(); lv.Text </span>=<span style="color: #000000;"> singer_name; lv.ImageIndex </span>=index_singer++<span style="color: #000000;">; lvlistthere.Items.Add(lv); } } } } </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception) { MessageBox.Show(</span><span style="color: #800000;">"</span><span style="color: #800000;">网络异常!</span><span style="color: #800000;">"</span><span style="color: #000000;">); } </span><span style="color: #0000ff;">finally</span><span style="color: #000000;"> { con.Close(); } } } </span><span style="color: #008000;">//</span><span style="color: #008000;">点击按钮主界面触发的事件</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">void</span> btnmain_Click(<span style="color: #0000ff;">object</span><span style="color: #000000;"> sender, EventArgs e) { FrmByValue.frM.Show(); </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.Close(); } </span>

简单易懂的PyCharm项目打包方法分享随着Python的流行,越来越多的开发者使用PyCharm作为Python开发的主要工具。PyCharm是功能强大的集成开发环境,它提供了许多方便的功能来帮助我们提高开发效率。其中一个重要的功能就是项目的打包。本文将介绍如何在PyCharm中简单易懂地打包项目,并提供具体的代码示例。为什么要打包项目?在Python开发

PyCharm是一款功能强大的Python集成开发环境,提供了丰富的开发工具和环境配置,让开发者能够更高效地编写和调试代码。在使用PyCharm进行Python项目开发的过程中,有时候我们需要将项目打包成可执行的EXE文件,以便在没有安装Python环境的计算机上运行。本文将介绍如何使用PyCharm将项目转换为可执行的EXE文件,同时给出具体的代码示例。首

如何在iOS17中的iPhone上制作GroceryList在“提醒事项”应用中创建GroceryList非常简单。你只需添加一个列表,然后用你的项目填充它。该应用程序会自动将您的商品分类,您甚至可以与您的伴侣或扁平伙伴合作,列出您需要从商店购买的东西。以下是执行此操作的完整步骤:步骤1:打开iCloud提醒事项听起来很奇怪,苹果表示您需要启用来自iCloud的提醒才能在iOS17上创建GroceryList。以下是它的步骤:前往iPhone上的“设置”应用,然后点击[您的姓名]。接下来,选择i

react启动项目报错的解决办法:1、进入项目文件夹,启动项目并查看报错信息;2、执行“npm install”或“npm install react-scripts”命令;3、执行“npm install @ant-design/pro-field --save”命令。

作为一个技术博主,了不起比较喜欢各种折腾,之前给大家介绍过ChatGPT接入微信,钉钉和知识星球(如果没看过的可以翻翻前面的文章),最近再看开源项目的时候,发现了一个ChatGPTWebUI项目。想着刚好之前没有将ChatGPT接入过WebUI,有了这个开源项目可以拿来使用,真是不错,下面是实操的安装步骤,分享给大家。安装官方在Github的项目文档上提供了很多中的安装方式,包括手动安装,docker部署,以及远程部署等方法,了不起在选择部署方式的时候,一开始为了简单想着

PyCharm是一款功能强大的Python集成开发环境(IDE),提供了丰富的功能帮助开发者更高效地编写和管理Python项目。在使用PyCharm开发项目的过程中,有时候我们需要删除一些不再需要的项目以释放空间或清理项目列表。本文将详细介绍如何在PyCharm中删除项目,并提供具体的代码示例。如何删除项目打开PyCharm,进入项目列表界面。在项目列表中,

IDEA(IntelliJIDEA)是一款强大的集成开发环境,可以帮助开发人员快速高效地开发各种Java应用程序。在Java项目开发中,使用Maven作为项目管理工具能够帮助我们更好地管理依赖库、构建项目等。本文将详细介绍如何在IDEA中创建一个Maven项目的基本步骤,同时提供具体的代码示例。步骤一:打开IDEA并创建新项目打开IntelliJIDEA

从零开始,快速上手PyCharm项目打包技巧概述:在Python开发中,将项目打包成可执行文件是非常重要的一步。它可以方便地分享和分发项目,而无需安装Python解释器和依赖包。PyCharm作为一个功能强大的Python集成开发环境,提供了快速上手项目打包的技巧和工具。本文将介绍如何利用PyCharm从零开始打包你的Python项目,并提供具体的代码示例。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)