KTV点歌系统

KTV点歌系统————北大青鸟  指导老师:原玉明

 

 1  public enum SongPlayState
 2     {
 3         //未播放,播放,重播,切歌
 4         unplayed, played, again, cut
 5     }
 6     public class Song
 7     {
 8         public string SongName { get; set; }//歌曲名称
 9 
10         public string SongURL { get; set; }//歌曲路径
11 
12        
13         public  SongPlayState playState = SongPlayState.unplayed;//默认未播放
14         internal SongPlayState PlayState { get; set; }
15 
16         //状态为已播
17         public  void SetSongPlayed()
18         {
19             this.PlayState = SongPlayState.played;
20         }
21         //重唱
22         public void SetPlayAgain()
23         {
24             this.playState = SongPlayState.again;
25         }
26        //切歌
27         public void SetSongCut()
28         {
29             this.playState = SongPlayState.cut;
30         }

 

 

PlayList类中实现切歌 重唱 下一首 等…..

  1 public class PlayList
  2     {
  3         //定义一个长度为、50的歌曲数组,默认存储50首歌曲
  4         public static Song[] SongList = new Song[50];
  5         public static int SongIndex = 0;//当前播放的歌曲在数组中的索引
  6         //点播一首歌曲,其实是将歌曲对象添加到歌曲数组中
  7         public static bool AddSong(Song song)
  8         {
  9             bool success = false;//记录添加歌曲是否成功
 10             for (int i = 0; i < SongList.Length; i++)
 11             {
 12                 //找到数组中第一个为null的位置
 13                 if (SongList[i] == null)
 14                 {
 15                     SongList[i] = song;
 16                     success = true;
 17                     break;
 18                 }
 19             }
 20             return success;
 21         }
 22         //获取当前播放的歌曲::既然是获取当前播放的歌曲,返回值肯定是Song类型
 23         public static Song GetPlaySong()
 24         {
 25             if (SongList[SongIndex] != null)
 26             {
 27                 return SongList[SongIndex];
 28             }
 29             else
 30             {
 31                 return null;
 32             }
 33         }
 34         /// <summary>
 35         /// 播放下一首
 36         /// </summary>
 37         public static void MoveOn()
 38         {
 39             if (SongList[SongIndex] != null && SongList[SongIndex].PlayState == SongPlayState.again)
 40             {
 41                 SongList[SongIndex].SetSongPlayed();
 42             }
 43             else
 44             {
 45                 SongIndex++;
 46             }
 47         }
 48         /// <summary>
 49         /// 当前播放的歌曲名称
 50         /// </summary>
 51         /// <returns>歌曲名称</returns>
 52         public static string PlayingSongName()
 53         {
 54             string songName = ""; // 歌曲名称
 55             if (SongList[SongIndex] != null)
 56             {
 57                 songName = SongList[SongIndex].SongName;
 58             }
 59 
 60             return songName;
 61         }
 62         /// <summary>
 63         /// 下一首要播放的歌曲名称
 64         /// </summary>
 65         /// <returns>歌曲名称</returns>
 66         public static string NextSongName()
 67         {
 68             string songName = ""; // 歌曲名称
 69             if (SongList[SongIndex + 1] != null)
 70             {
 71                 songName = SongList[SongIndex + 1].SongName;
 72             }
 73 
 74             return songName;
 75         }
 76         //重放当前歌曲
 77         public static void PlayAgain()
 78         {
 79             if (SongList[SongIndex] != null)
 80             {
 81                 SongList[SongIndex].SetPlayAgain();
 82             }
 83         }
 84         //切歌
 85         public static void CutSong(int index)
 86         {
 87             int i;//循环变量,代表切歌的位置
 88             if (index == -1)//循环变量,代表切割的位置
 89             {
 90                 i = SongIndex;
 91             }
 92             else
 93             {
 94                 i = index;//从切歌的位置开始,将歌曲逐个向前移一个位置
 95             }
 96             SongList[i].SetSongCut();
 97             while (SongList[i] != null)
 98             {
 99                 SongList[i] = SongList[i + 1];
100                 i++; 
101                 //如果达到数组最后一个元素,就将最后一个元素指向空
102                 if (i == SongList.Length)
103                 {
104                     SongList[i] = null;
105                 }
106             }
107         }
108     }

 实现歌手点歌

  1  public FrmMain frmMain;
  2         string connectionStr = "server=.;database=MyKTV;uid=sa";
  3         DBHelp db = new DBHelp();
  4         private SqlConnection con;
  5         //首先要查出数据库中的图片路径和歌曲路径
  6         private void FrmCountry_Load(object sender, EventArgs e)
  7         {
  8             
  9             con = new SqlConnection(connectionStr);
 10             con.Open();
 11             string sql = "select resource_path from resource_path where resource_id=1";
 12 
 13             string sqlsongpath = "select resource_path from resource_path where resource_id=2";
 14             SqlCommand cmd = new SqlCommand(sql,con);
 15 
 16             SqlCommand cmd2 = new SqlCommand(sqlsongpath, con);
 17             KtvUnit.ImagePath = cmd.ExecuteScalar().ToString();
 18             KtvUnit.SongPath = cmd2.ExecuteScalar().ToString();
 19             con.Close();
 20         }
 21         //点击歌手男女或组合时
 22         private void LvOne_Click(object sender, EventArgs e)
 23         {
 24            
 25             LoadSingerArea();
 26         }
 27         public string singer_type { get; set; }
 28         private void LoadSingerArea()
 29         {
 30             if (this.LvOne.SelectedItems[0] != null)
 31             {
 32                 LvOne.Visible = false;
 33                 LvTwo.Location = LvOne.Location;
 34                 LvTwo.Dock = DockStyle.Fill;
 35                 LvTwo.Visible = true;
 36                 this.singer_type=Convert.ToString(LvOne.SelectedItems[0].Text);
 37             }
 38            
 39             con = new SqlConnection(connectionStr);
 40             string sql = "select singertype_id,singertype_name from singer_type";
 41             SqlCommand cmd = new SqlCommand(sql, con);
 42             SqlDataReader dr;
 43             try
 44             {
 45                 con.Open();
 46                 LvTwo.Items.Clear();
 47                 dr = cmd.ExecuteReader();             
 48                 if (dr.HasRows)
 49                 {
 50                     int index = 0;
 51                     while (dr.Read())
 52                     {
 53                         ListViewItem lvItem = new ListViewItem();
 54                         int typeid = Convert.ToInt32(dr["singertype_id"]);
 55                          string typename = Convert.ToString(dr["singertype_name"]);
 56                         lvItem.Text = typename;
 57                         lvItem.Tag = typeid;
 58                         lvItem.ImageIndex = index;
 59                         LvTwo.Items.Add(lvItem);
 60                         index++;
 61                     }
 62                 }
 63                 dr.Close();
 64             }
 65             catch (Exception ex)
 66             {
 67 
 68                 MessageBox.Show("系统出现异常" + ex.Message);
 69             }
 70             finally 
 71             {
 72                 con.Close();
 73             }
 74         }
 75         public string singertype_id { get; set; }
 76         /// <summary>
 77         /// 点击地区类型时
 78         /// </summary>
 79         /// <param name="sender"></param>
 80         /// <param name="e"></param>
 81         private void LvTwo_Click(object sender, EventArgs e)
 82         {
 83             if (this.LvTwo.SelectedItems[0] != null)
 84             {
 85                 LvTwo.Visible = false;
 86                 Lvthree.Location = LvTwo.Location;
 87                 Lvthree.Dock = DockStyle.Fill;
 88                 Lvthree.Visible = true;
 89                 this.singertype_id = Convert.ToString(LvTwo.SelectedItems[0].Tag);
 90             }
 91             string result = singer_type;
 92             if (result != "组合")
 93             {
 94                 result = singer_type == "女歌手" ? "" : "";
 95             }
 96             con = new SqlConnection(connectionStr);
 97             string sql =string.Format( "select singer_id,singer_name,singer_photo_url from singer_info where singertype_id={0} and singer_Sex='{1}'",singertype_id,result);
 98             SqlCommand cmd = new SqlCommand(sql, con);
 99             SqlDataReader dr;
100             try
101             {
102                 con.Open();
103                 int index = 0;
104                 Lvthree.Items.Clear();
105                 imageList3.Images.Clear();
106                 dr = cmd.ExecuteReader();
107                 if (dr.HasRows)
108                 {  
109                     while (dr.Read())
110                     {                       
111                         string photoURL =KtvUnit.ImagePath + Convert.ToString(dr["singer_photo_url"]);
112                         //先给ImageList填充图片
113                         imageList3.Images.Add(Image.FromFile(photoURL));
114                         ListViewItem lvItem = new ListViewItem();
115                         lvItem.Text = Convert.ToString(dr["singer_name"]);
116                         lvItem.Tag =  Convert.ToString(dr["singer_id"]);
117                         lvItem.ImageIndex = index;
118                         Lvthree.Items.Add(lvItem);
119                         index++;
120                     }
121                 }
122                 dr.Close();
123             }
124             catch (Exception ex)
125             {
126 
127                 MessageBox.Show("系统出现异常" + ex.Message);
128             }
129             finally
130             {
131                 con.Close();
132             }
133         }
134 
135         public void SongList()
136         {
137             //读取数据库,读出该歌手的所有歌曲
138  
139             StringBuilder sb = new StringBuilder();
140             //拼接SQL语句
141             sb.AppendFormat("select song_id,song_name,song_url,singer_name from song_info,singer_info where singer_name='{0}' and song_info.singer_id={1}", Lvthree.SelectedItems[0].Text, Convert.ToInt32(Lvthree.SelectedItems[0].Tag));
142             FrmSongList songList = new FrmSongList();
143            
144             songList.Sql = sb.ToString();
145             songList.Previous = KtvClient.PrevioisForm.Singer;//指定返回的窗体是按歌手点歌
146             songList.ShowDialog();
147             this.Close();
148 
149         }
150 
151         private void Lvthree_Click(object sender, EventArgs e)
152         {
153             SongList();
154         }
155 
156         private void tsSingerMain_Click(object sender, EventArgs e)
157         {
158             FrmMain main = new FrmMain();
159             main.Show();
160             this.Hide();
161         }
162 
163         private void tsSingerBack_Click(object sender, EventArgs e)
164         {
165             if (this.LvOne.Visible==true)
166             {
167                 FrmMain man = new FrmMain();
168                 man.Show();
169                 this.Hide();
170             }
171             else if (this.LvTwo.Visible==true)
172             {
173                 this.LvTwo.Visible = false;
174                 this.LvOne.Visible = true;
175             }
176             else if (this.Lvthree.Visible==true)
177             {
178                 this.Lvthree.Visible = false;
179                 this.LvTwo.Visible = true;
180             }
181         }
182 
183         private void tsSingerCut_Click(object sender, EventArgs e)
184         {
185             PlayList.CutSong(-1);
186         }
187 
188         private void tsSingerAgain_Click(object sender, EventArgs e)
189         {
190             PlayList.PlayAgain();
191         }
192 
193         private void tsSingerYidian_Click(object sender, EventArgs e)
194         {
195             FrmPlayList frm = new FrmPlayList();
196             frm.Show();
197         }

拼音点歌

 

  1 public FrmMain frmMain;
  2         [DllImportAttribute("user32.dll")]
  3         private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
  4         DBHelp db = new DBHelp();
  5         string connectionStr = "server=.;database=MyKTV;uid=sa";
  6         private void FrmPinYin_Load(object sender, EventArgs e)
  7         {
  8             AnimateWindow(this.Handle, 300, FrmMain.AW_SLIDE + FrmMain.AW_VER_POSITIVE);
  9             SqlConnection con = new SqlConnection(connectionStr);
 10             con.Open();
 11             db.connection();   
 12             string sqlsongpath = "select resource_path from resource_path where resource_id=2";
 13             SqlCommand cmd = new SqlCommand(sqlsongpath, con);
 14             KtvUnit.SongPath = cmd.ExecuteScalar().ToString();
 15         }
 16         private void btnSearch_Click(object sender, EventArgs e)
 17         {
 18             string PinYin = this.txtPinYin.Text;
 19             //判断是否是中文 还是拼音
 20             if (!Regex.IsMatch(this.txtPinYin.Text, @"^[\u4e00-\u9fa5]+$"))
 21             {
 22                 StringBuilder PY = new StringBuilder(PinYin);
 23                
 24                 for (int i = 0; i <= PY.Length; i++)
 25                 {
 26                     PY.Insert(i, "%");
 27                     i++;
 28                 }
 29                 string sql = string.Format("SELECT song_name,singer_name FROM    dbo.singer_info, dbo.song_info WHERE dbo.singer_info.singer_id=dbo.song_info.singer_id AND song_ab LIKE '{0}'", PY);
 30                 this.dgvPinYinInfo.DataSource = db.dataTable(sql,"PY");
 31             }
 32             else
 33             {
 34                 StringBuilder ZW = new StringBuilder(PinYin);
 35                 for (int i = 0; i < ZW.Length; i++)
 36                 {
 37                     ZW.Insert(i,"%");
 38                     i++;
 39                 }
 40                 string sql = string.Format("SELECT song_name,singer_name FROM    dbo.singer_info, dbo.song_info WHERE dbo.singer_info.singer_id=dbo.song_info.singer_id AND song_name LIKE '{0}'", ZW);
 41                 this.dgvPinYinInfo.DataSource = db.dataTable(sql, "PY");
 42             }
 43         }
 44 
 45         private void dgvPinYinInfo_DoubleClick(object sender, EventArgs e)
 46         {
 47             string songname = this.dgvPinYinInfo.SelectedRows[0].Cells["song_name"].Value.ToString();
 48             DBHelp db = new DBHelp();
 49             db.connection();
 50             string sql = string.Format("SELECT song_name,singer_name,song_url,song_photo_url FROM dbo.song_info,dbo.singer_info  where dbo.singer_info.singer_id=dbo.song_info.singer_id and song_name='{0}'",songname);
 51 
 52             SqlDataReader reader = db.ExecuteReaders(sql.ToString());
 53 
 54             Song song;
 55             if (reader.Read())
 56             {
 57                 song = new Song();
 58                 song.SongName = reader["song_name"].ToString();
 59                 song.SongURL = KtvUnit.SongPath+reader["song_url"].ToString();
 60                 PlayList.AddSong(song);              
 61             }
 62             reader.Close();
 63         }
 64 
 65         private void pictureBox2_Click(object sender, EventArgs e)
 66         {
 67             textBox1.Text = textBox1.Text + "a";
 68         }
 69 
 70         private void pictureBox1_Click(object sender, EventArgs e)
 71         {
 72             textBox1.Text = textBox1.Text + "b";
 73         }
 74 
 75         private void pictureBox3_Click(object sender, EventArgs e)
 76         {
 77             textBox1.Text = textBox1.Text + "c";
 78         }
 79 
 80         private void pictureBox4_Click(object sender, EventArgs e)
 81         {
 82             textBox1.Text = textBox1.Text + "d";
 83         }
 84 
 85         private void pictureBox5_Click(object sender, EventArgs e)
 86         {
 87             textBox1.Text = textBox1.Text + "e";
 88         }
 89 
 90         private void pictureBox6_Click(object sender, EventArgs e)
 91         {
 92             textBox1.Text = textBox1.Text + "f";
 93         }
 94 
 95         private void pictureBox7_Click(object sender, EventArgs e)
 96         {
 97             textBox1.Text = textBox1.Text + "g";
 98         }
 99 
100         private void pictureBox8_Click(object sender, EventArgs e)
101         {
102             textBox1.Text = textBox1.Text + "h";
103         }
104 
105         private void pictureBox9_Click(object sender, EventArgs e)
106         {
107             textBox1.Text = textBox1.Text + "i";
108         }
109 
110         private void pictureBox10_Click(object sender, EventArgs e)
111         {
112             textBox1.Text = textBox1.Text + "j";
113         }
114 
115         private void pictureBox26_Click(object sender, EventArgs e)
116         {
117             textBox1.Text = textBox1.Text + "k";
118         }
119 
120         private void pictureBox11_Click(object sender, EventArgs e)
121         {
122             textBox1.Text = textBox1.Text + "l";
123         }
124 
125         private void pictureBox12_Click(object sender, EventArgs e)
126         {
127             textBox1.Text = textBox1.Text + "m";
128         }
129 
130         private void pictureBox13_Click(object sender, EventArgs e)
131         {
132             textBox1.Text = textBox1.Text + "n";
133         }
134 
135         private void pictureBox14_Click(object sender, EventArgs e)
136         {
137             textBox1.Text = textBox1.Text + "o";
138         }
139 
140         private void pictureBox15_Click(object sender, EventArgs e)
141         {
142             textBox1.Text = textBox1.Text + "p";
143         }
144 
145         private void pictureBox16_Click(object sender, EventArgs e)
146         {
147             textBox1.Text = textBox1.Text + "q";
148         }
149 
150         private void pictureBox17_Click(object sender, EventArgs e)
151         {
152             textBox1.Text = textBox1.Text + "r";
153         }
154 
155         private void pictureBox18_Click(object sender, EventArgs e)
156         {
157             textBox1.Text = textBox1.Text + "s";
158         }
159 
160         private void pictureBox19_Click(object sender, EventArgs e)
161         {
162             textBox1.Text = textBox1.Text + "t";
163         }
164 
165         private void pictureBox20_Click(object sender, EventArgs e)
166         {
167             textBox1.Text = textBox1.Text + "u";
168         }
169 
170         private void pictureBox21_Click(object sender, EventArgs e)
171         {
172             textBox1.Text = textBox1.Text + "v";
173         }
174 
175         private void pictureBox22_Click(object sender, EventArgs e)
176         {
177             textBox1.Text = textBox1.Text + "w";
178         }
179 
180         private void pictureBox23_Click(object sender, EventArgs e)
181         {
182             textBox1.Text = textBox1.Text + "x";
183         }
184 
185         private void pictureBox24_Click(object sender, EventArgs e)
186         {
187             textBox1.Text = textBox1.Text + "y";
188         }
189 
190         private void pictureBox25_Click(object sender, EventArgs e)
191         {
192             textBox1.Text = textBox1.Text + "z";
193         }
194 
195         private void FrmPinYin_FormClosing(object sender, FormClosingEventArgs e)
196         {
197             AnimateWindow(this.Handle, 300, FrmMain.AW_SLIDE + FrmMain.AW_VER_POSITIVE);
198         }
199         public void Binder() 
200         {
201             string PinYin = this.textBox1.Text;
202             StringBuilder PY = new StringBuilder(PinYin);
203            
204             for (int i = 0; i <= PY.Length; i++)
205             {
206                 PY.Insert(i, "%");
207                 i++;
208             }
209             string sql = string.Format("SELECT song_name,singer_name FROM    dbo.singer_info, dbo.song_info WHERE dbo.singer_info.singer_id=dbo.song_info.singer_id AND song_ab LIKE '{0}'", PY);
210             DataSet ds = db.dataSet(sql, "PY");
211             if (ds.Tables["PY"]!=null)
212             {
213                 ds.Tables["PY"].Clear();
214             }
215             this.dgvPinYinInfo.DataSource = db.dataTable(sql, "PY");
216         }
217         private void pictureBox28_Click(object sender, EventArgs e)
218         {
219             string text = textBox1.Text;
220             int index = text.Length - 1;
221             if (index >= 0)
222             {
223                 textBox1.Text = text.Remove(index);
224             }
225         }
226 
227         private void textBox1_TextChanged(object sender, EventArgs e)
228         {
229             if (textBox1.Text!=string.Empty)
230             {
231                 Binder();
232                 this.dgvPinYinInfo.AutoGenerateColumns = false;
233             }
234             else
235             {
236                 this.dgvPinYinInfo.DataSource=null;
237             }
238 
239         }
240 
241       
242 
243         private void tsPYMain_Click(object sender, EventArgs e)
244         {
245             FrmMain main = new FrmMain();
246             main.Show();
247             this.Hide();
248         }
249 
250         private void txPYAgain_Click(object sender, EventArgs e)
251         {
252             FrmMain main = new FrmMain();
253             main.Playsong();
254         }
255         Song song = new Song();
256         private void tsPYCut_Click(object sender, EventArgs e)
257         {
258             song.playState = SongPlayState.cut;
259         }
260 
261         private void tsPYYidian_Click(object sender, EventArgs e)
262         {
263             FrmPlayList list = new FrmPlayList();
264             list.Show();
265         }
266 
267         private void tsPYBack_Click(object sender, EventArgs e)
268         {
269             Application.Exit();
270         }       

类型点歌

  1   public FrmMain frmMain;
  2         string connectionStr = "server=.;database=MyKTV;uid=sa";
  3         DBHelp db = new DBHelp();
  4         private SqlConnection con;
  5         private void FrmSongType_Load(object sender, EventArgs e)
  6         {
  7             con = new SqlConnection(connectionStr);
  8             con.Open();
  9             string sql = "select resource_path from resource_path where resource_id=1";
 10             string sqlsongpath = "select resource_path from resource_path where resource_id=2";
 11             SqlCommand cmd2 = new SqlCommand(sqlsongpath,con);
 12             KtvUnit.SongPath = cmd2.ExecuteScalar().ToString();
 13             SqlCommand cmd = new SqlCommand(sql, con);
 14             KtvUnit.ImagePath = cmd.ExecuteScalar().ToString();
 15             con.Close();
 16       
 17             con = new SqlConnection(connectionStr);
 18             string sql1 = string.Format("select songtype_id,songtype_name,songtype_URL from song_type");
 19             SqlCommand cmd1 = new SqlCommand(sql1, con);
 20             SqlDataReader dr;
 21             try
 22             {
 23                 con.Open();
 24                 int index = 0;
 25                 lvSongType.Items.Clear();
 26                 imageList1.Images.Clear();
 27                 dr = cmd1.ExecuteReader();
 28                 if (dr.HasRows)
 29                 {
 30                     while (dr.Read())
 31                     {
 32                         string photoURL = KtvUnit.ImagePath + Convert.ToString(dr["songtype_URL"]);
 33                         //先给ImageList填充图片
 34                         imageList1.Images.Add(Image.FromFile(photoURL));
 35                         ListViewItem lvItem = new ListViewItem();
 36                         lvItem.Text = Convert.ToString(dr["songtype_name"]);
 37                         lvItem.Tag = Convert.ToString(dr["songtype_id"]);
 38                         lvItem.ImageIndex = index;
 39                         lvSongType.Items.Add(lvItem);
 40                         index++;
 41                     }
 42                 }
 43                 dr.Close();
 44             }
 45             catch (Exception ex)
 46             {
 47 
 48                 MessageBox.Show("系统出现异常" + ex.Message);
 49             }
 50             finally
 51             {
 52                 con.Close();
 53             }
 54         }
 55         private void LoadSongType()
 56         {
 57             //读取数据库,读出该歌曲类型的所有歌曲
 58 
 59             StringBuilder sb = new StringBuilder();
 60             //拼接SQL语句
 61             sb.AppendFormat("select song_info.song_name,singer_info.singer_name,song_info.song_url from singer_info,song_info where song_info.singer_id=singer_info.singer_id and song_info.songtype_id={0}", Convert.ToInt32(lvSongType.SelectedItems[0].Tag));
 62             FrmSongList songList = new FrmSongList();
 63 
 64             songList.Sql = sb.ToString();
 65             songList.Previous = KtvClient.PrevioisForm.SongType;//指定返回的窗体是按歌曲类型点歌
 66             songList.ShowDialog();
 67             this.Close();
 68         }
 69 
 70         private void lvSongType_Click(object sender, EventArgs e)
 71         {
 72             LoadSongType();
 73         }
 74 
 75         private void tsTYSingerMain_Click(object sender, EventArgs e)
 76         {
 77             FrmMain main = new FrmMain();
 78             main.Show();
 79             this.Hide();
 80         }
 81 
 82         private void tsTYSingerAgain_Click(object sender, EventArgs e)
 83         {
 84             FrmMain main = new FrmMain();
 85             main.Playsong();
 86         }
 87         Song song = new Song();
 88         private void tsTYSingerCut_Click(object sender, EventArgs e)
 89         {
 90             song.playState = SongPlayState.cut;
 91         }
 92 
 93         private void tsTYSingerYidian_Click(object sender, EventArgs e)
 94         {
 95             FrmPlayList list = new FrmPlayList();
 96             list.Show();
 97         }
 98 
 99         private void tsTYSingerBack_Click(object sender, EventArgs e)
100         {
101             FrmMain main = new FrmMain();
102             main.Show();
103             this.Hide();
104         }

金榜排行

 

 1   public FrmMain frmMain;
 2         DBHelp db = new DBHelp();
 3         string connectionStr = "server=.;database=MyKTV;uid=sa";
 4         private void FrmJB_Load(object sender, EventArgs e)
 5         {
 6             SqlConnection con = new SqlConnection(connectionStr);
 7             con.Open();
 8             db.connection();
 9             string sql = "SELECT song_name,song_play_count FROM dbo.song_info ORDER BY song_play_count DESC";
10             string sqlsongpath = "select resource_path from resource_path where resource_id=2";
11             SqlCommand cmd = new SqlCommand(sqlsongpath, con);
12             KtvUnit.SongPath = cmd.ExecuteScalar().ToString();
13             DataSet ds = db.dataSet(sql,"Count");
14             this.dgvSongList.DataSource = ds.Tables["Count"].DefaultView;
15         }
16 
17 
18 
19         private void dgvSongList_Click(object sender, EventArgs e)
20         {
21             DBHelp db = new DBHelp();
22             if (dgvSongList.SelectedRows[0]!=null)
23             {
24                 string songname = this.dgvSongList.SelectedRows[0].Cells["SongName"].Value.ToString();
25                 db.connection();
26                 string sql = string.Format("SELECT song_name,singer_name,song_url,song_photo_url FROM dbo.song_info,dbo.singer_info  where dbo.singer_info.singer_id=dbo.song_info.singer_id and song_name='{0}'", songname);
27 
28                 SqlDataReader reader = db.ExecuteReaders(sql.ToString());
29 
30                 Song song;
31                 if (reader.Read())
32                 {
33                     song = new Song();
34                     song.SongName = reader["song_name"].ToString();
35                     song.SongURL = KtvUnit.SongPath + reader["song_url"].ToString();
36                     PlayList.AddSong(song);
37                 }
38                 reader.Close();
39             }
40             else
41             {
42                 MessageBox.Show("");
43             }
44             
45         }

数字点歌

 1  public FrmMain frmMain;
 2         string connectionStr = "server=.;database=MyKTV;uid=sa";
 3         DBHelp db = new DBHelp();
 4         private SqlConnection con;
 5         private void FrmNumber_Load(object sender, EventArgs e)
 6         {
 7             con = new SqlConnection(connectionStr);
 8             con.Open();
 9             string sqlsongpath = "select resource_path from resource_path where resource_id=2";
10             SqlCommand cmd = new SqlCommand(sqlsongpath, con);
11             KtvUnit.SongPath = cmd.ExecuteScalar().ToString();
12             con.Close();
13             for (int i = 1; i <= 4; i++)
14             {
15                 for (int j = 1; j <= 3; j++)
16                 {
17                     Label label = new Label();
18                     label.ForeColor = Color.Red;
19                     label.BackColor = Color.Pink;
20                     label.Font=new System.Drawing.Font("华文彩云",20);
21                     label.TextAlign = ContentAlignment.MiddleCenter;
22                     label.Click += label_Click;
23                     this.MouseMove += FrmNumber_MouseMove;
24                     label.MouseHover += label_MouseHover;
25                     label.Size = new System.Drawing.Size(80, 40);
26                     label.Text = j.ToString();
27                     if (i > 1)
28                     {
29                         label.Text = (j + i + 1).ToString();
30                     }
31                     if (i > 2)
32                     {
33                         label.Text = (j + i + 3).ToString();
34                     }
35                     if (i > 3)
36                     {
37                         label.Text = (j + i + 5).ToString();
38                     }                                  
39                     label.Location = new Point(40 + 120 * j, 40 + 60 * i);
40                     this.Controls.Add(label);
41                 }
42             }
43         }

已点列表

 

 1   private void FrmPlayList_Load(object sender, EventArgs e)
 2         {
 3             SongList();
 4         }
 5        
 6         public  void SongList() 
 7         {
 8             lvSong.Items.Clear();
 9             for (int i = 0; i < PlayList.SongList.Length; i++)
10             {
11                 if (PlayList.SongList[i]!=null)
12                 {
13                     ListViewItem item = new ListViewItem();
14                     item.Text = PlayList.SongList[i].SongName;
15                     item.Tag = i;
16                     string playstate = PlayList.SongList[i].PlayState == SongPlayState.unplayed ? "未播放" : "已播";
17                     item.SubItems.Add(playstate);
18                     lvSong.Items.Add(item);
19                 }
20             }
21         }
22 
23         private void btnClose_Click(object sender, EventArgs e)
24         {
25             this.Close();
26         }

 

转载于:https://www.cnblogs.com/PGYXZ/p/4689417.html

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注