第一步:创建数据库连接方法和打开方法和关闭方法!

 1  public class DBHelper
 2     {
 3        private  string str = "server=.;database=MyKtv;uid=sa";
 4        private SqlConnection _conection;
 5
 6        public SqlConnection Conection
 7        {
 8            get
 9            {
10                if (_conection==null)
11                {
12                    _conection = new SqlConnection(str);
13                }
14                return _conection;
15            }
16        }
17        /// <summary>
18        /// 打开方法
19        /// </summary>
20        public void OpenConnection()
21        {
22            if (Conection.State == ConnectionState.Closed)
23            {
24                Conection.Open();
25            } if (Conection.State == ConnectionState.Broken)
26            {
27                Conection.Close();
28                Conection.Open();
29            }
30        }
31        /// <summary>
32        /// 关闭方法`
33        /// </summary>
34        public void CloseConnection()
35        {
36            if (Conection.State == ConnectionState.Open && Conection.State == ConnectionState.Broken)
37            {
38                Conection.Close();
39            }
40
41        }

第二步:歌曲首页

歌曲首页:用到了窗体之间的转换和读取路径表中的图片路径放到filepath上

 1 public partial class FormMain : Form
 2     {
 3         DBHelper db = new DBHelper();
 4         public FormMain()
 5         {
 6             InitializeComponent();
 7         }
 8         private void Form1_Load(object sender, EventArgs e)
 9         {
10             //读取路径表中的图片路径放到filepath上
11             string sql = "select resource_path from resource_path where resource_id=1";
12             SqlCommand cmd = new SqlCommand(sql,db.Conection);
13             db.OpenConnection();
14             KtvUtil.FilePath = cmd.ExecuteScalar().ToString();
15             db.CloseConnection();
16         }
17
18         private void pictureBox1_Click(object sender, EventArgs e)
19         {
20             //打开明星点歌窗体
21             FrmSinger frmSinger = new FrmSinger();
22             frmSinger.Show();
23         }
24
25         private void toolStripButton4_Click(object sender, EventArgs e)
26         {
27             this.Close();
28         }
29
30         private void pictureBox4_Click(object sender, EventArgs e)
31         {
32             //打开拼音点歌窗体
33             FrmOrderBySongName fobsn = new FrmOrderBySongName();
34             fobsn.ShowDialog();
35         }

第三步:歌星点歌

歌星点歌:用到了3个ListView之间的跳转,

  1 public partial class FrmSinger : Form
  2     {
  3         DBHelper db = new DBHelper();
  4         public string SingerType = "组合";
  5         public int SingerId = 0;
  6
  7         public FrmSinger()
  8         {
  9             InitializeComponent();
 10         }
 11
 12         private void panel1_Paint(object sender, PaintEventArgs e)
 13         {
 14
 15         }
 16         /// <summary>
 17         /// 点击歌手类型后加载相应的信息
 18         /// </summary>
 19         public void ShowSingerDiQu()
 20         {
 21              if (lvtype.SelectedItems[0]!=null)
 22             {
 23                 lvtype.Visible = false;
 24                 lvSinger.Visible = true;
 25                 lvSinger.Location = lvtype.Location;
 26
 27
 28                 this.SingerType = Convert.ToString(lvtype.SelectedItems[0].Tag);
 29             }
 30             string sql = "select singertype_name,singertype_id from singer_type";
 31             SqlCommand cmd = new SqlCommand(sql,db.Conection);
 32             SqlDataReader sdr;
 33             try
 34             {
 35                 db.OpenConnection();
 36                 sdr = cmd.ExecuteReader();
 37                 lvtype.Items.Clear();
 38                 if (sdr.HasRows)
 39                 {
 40                     int result = 0;
 41                     while (sdr.Read())
 42                     {
 43                         ListViewItem lvitem = new ListViewItem();
 44                         string typename = Convert.ToString(sdr["singertype_name"]);
 45                         int typeid = Convert.ToInt32(sdr["singertype_id"]);
 46                         lvitem.Text = typename;
 47                         lvitem.Tag = typeid;
 48                         lvitem.ImageIndex = result;
 49                         lvSinger.Items.Add(lvitem);
 50                         result++;
 51                     }
 52                     sdr.Close();
 53                 }
 54             }
 55             catch (Exception ex)
 56             {
 57                 MessageBox.Show("第二个系统报错" + ex.Message);
 58             }
 59             finally
 60             {
 61                 db.CloseConnection();
 62             }
 63         }
 64
 65         private void listView2_SelectedIndexChanged(object sender, EventArgs e)
 66         {
 67
 68         }
 69
 70         private void FrmOrderBySinger_Load(object sender, EventArgs e)
 71         {
 72             this.lvSinger.Visible = false;
 73             this.lvContry.Visible=false;
 74         }
 75
 76         private void listView1_Click(object sender, EventArgs e)
 77         {
 78              ShowSingerDiQu();
 79         }
 80         /// <summary>
 81         /// 读取对应地区的歌手名称
 82         /// </summary>
 83         public void ShowSingerName()
 84         {
 85             if (lvSinger.SelectedItems[0]!=null)
 86             {
 87                 lvSinger.Visible = false;
 88                 lvContry.Visible = true;
 89                 lvContry.Location = lvtype.Location;
 90                 SingerId = Convert.ToInt32(lvSinger.SelectedItems[0].Tag);
 91                 StringBuilder sb = new StringBuilder();
 92                 string sum = SingerType;
 93                 if (sum!="组合")
 94                 {
 95                     sum = SingerType == "女歌手" ? "男" : "女";
 96                 }
 97                 string sql = string.Format("select singer_name,singer_photo_url,singer_id from singer_info where singertype_id='{0}' and singer_sex='{1}'", SingerId,sum);
 98                 SqlCommand cmd = new SqlCommand(sql, db.Conection);
 99                 try
100                 {
101                     db.OpenConnection();
102                     SqlDataReader read = cmd.ExecuteReader();
103                     if (read.HasRows)
104                     {
105                         //歌手头像索引
106                         int imageindex = 0;
107                         //清空图片集合
108                         imageName.Images.Clear();
109                         //清空listview列表集合
110                         lvContry.Items.Clear();
111                         if (read.HasRows)
112                         {
113                             while (read.Read())
114                             {
115                                 //图片的地址
116                                 string path = KtvUtil.FilePath + @"" + Convert.ToString(read["singer_photo_url"]);
117                                 imageName.Images.Add(Image.FromFile(path));
118                                 ListViewItem lvitem = new ListViewItem();
119                                 string typename = Convert.ToString(read["singer_name"]);
120                                 int typeid = Convert.ToInt32(read["singer_id"]);
121                                 lvitem.Text = typename;
122                                 lvitem.Tag = typeid;
123                                 lvitem.ImageIndex = imageindex;
124                                 lvContry.Items.Add(lvitem);
125                                 imageindex++;
126                             }
127                             read.Close();
128                         }
129                     }
130
131                 }
132                 catch (Exception ex)
133                 {
134                     MessageBox.Show("第三个系统报错!" + ex.Message);
135                 }
136                 finally
137                 {
138                     db.CloseConnection();
139                 }
140             }
141
142         }
143         private void lvName_Click(object sender, EventArgs e)
144         {
145             ShowList();
146         }
147
148         private void listView2_Click(object sender, EventArgs e)
149         {
150             ShowSingerName();
151         }
152
153         private void listView1_ChangeUICues(object sender, UICuesEventArgs e)
154         {
155
156         }
157         /// <summary>
158         /// 打开第三层ListView
159         /// </summary>
160         public void ShowList()
161         {
162             //定义一个StringBuilder对象
163             StringBuilder sb = new StringBuilder();
164             //sql语句
165             string sql = string.Format("select song_id,song_name,singer_name='{0}',song_url from song_info where singer_id={1}",lvContry.SelectedItems[0].Text,Convert.ToInt32(lvContry.SelectedItems[0].Tag));
166             //定义歌曲列表窗体的对象
167             FrmSongList sl=new FrmSongList();
168            //把sql语句传到第三个窗体上
169             sl.Sql=sql;
170             sl.ShowDialog();
171             this.Close();
172         }
173
174         private void toolStripButton4_Click(object sender, EventArgs e)
175         {
176             this.Close();
177         }
178
179         private void toolStripButton1_Click(object sender, EventArgs e)
180         {
181             if (lvSinger.Visible)
182             {
183                 lvSinger.Visible = false;
184                 lvContry.Visible = true;
185             }
186             else if (lvContry.Visible)
187             {
188                 lvContry.Visible = false;
189                 lvtype.Visible = true;
190             }
191             else if (lvtype.Visible)
192             {
193                 FormMain dd = new FormMain();
194                 dd.Show();
195                 this.Close();
196             }
197         }

第四步:歌曲列表

双击DateGrilView选中的一行,提示:

歌曲列表:实现点击一下歌曲列表中的一行信息就到以点里面

 1 public partial class FrmSongList : Form
 2     {
 3         DBHelper db = new DBHelper();
 4         DataSet ds = new DataSet();
 5
 6         private string sql = "";
 7         //歌曲的查询语句
 8         public string Sql
 9         {
10             get { return sql; }
11             set { sql = value; }
12         }
13         public FrmSongList()
14         {
15             InitializeComponent();
16         }
17
18         private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
19         {
20             //第一步判断datagridView有没有选中的行
21             //第二步从实例化SongList类
22             //第三步调取歌曲song类的字段进行赋值(从datagridview中的列赋值);
23             //第四部把从datagridview中获取到的数据添加到播放类里的数组中
24             if (this.dataGridView1.SelectedRows[0]!=null)
25             {
26                 SongList song = new SongList();
27                 song.SongName1 = this.dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
28                 song.SongUl1 = this.dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
29                 PalyList.AddSong(song);
30             }
31
32         }
33
34         private void FrmSongList_Load(object sender, EventArgs e)
35         {
36             SqlDataAdapter sda = new SqlDataAdapter(sql,db.Conection);
37             sda.Fill(ds,"songinfo");
38             dataGridView1.DataSource = ds.Tables["songinfo"];
39         }
40
41         private void toolStripButton4_Click(object sender, EventArgs e)
42         {
43             this.Close();
44         }
45
46         private void toolStripButton6_Click(object sender, EventArgs e)
47         {
48             FrmSong frm = new FrmSong();
49             frm.ShowDialog();
50         }

第五步:已点歌曲

已点歌曲:进入了就是已播放状态一次往下添加都是未播放,如果到了下面的播放状态就还得改变成已播放

 1   private void FrmOrderedSongList_Load(object sender, EventArgs e)
 2         {
 3             //遍历播放类里面的数组
 4             foreach (SongList item in PalyList.song)
 5             {
 6
 7                 if (item!=null)
 8                 {
 9                     ListViewItem lvitem = new ListViewItem(item.SongName1);
10                     string type = item.PlaySong == PalySongState.unplayed ? "未播放" : "已播放";
11                     lvitem.SubItems.Add(type);
12                     this.listView1.Items.Add(lvitem);
13                 }
14
15             }
16         }
17
18         private void toolStripButton1_Click(object sender, EventArgs e)
19         {
20             FrmSinger dd = new FrmSinger();
21             dd.Show();
22         }

第六步:拼音点歌

  1     public partial class FrmSpeall : Form
  2     {
  3         private DBOpetion db = new DBOpetion();
  4         private SqlDataAdapter adapter = null;
  5         private DataSet ds = new DataSet();
  6         public FrmSpeall()
  7         {
  8             InitializeComponent();
  9         }
 10         [DllImportAttribute("user32.dll")]
 11         private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);
 12         private void FrmSpeall_Load(object sender, EventArgs e)
 13         {
 14             AnimateWindow(this.Handle, 300, FrmMain.AW_SLIDE + FrmMain.AW_VER_POSITIVE);
 15         //动态效果可以取消注释
 16             //for (int i = 97; i < 123; i++)
 17             //{
 18             //    for (int j = 0; j < 4; j++)
 19             //    {
 20             //        Label label = new Label();
 21             //        label.BackColor = Color.Yellow;
 22             //        label.Font=new System.Drawing.Font("宋体",14.25F,System.Drawing.FontStyle.Regular,
 23             //            System.Drawing.GraphicsUnit.Point,((byte)(134)));
 24             //        label.AutoSize = false;
 25             //        label.Size = new System.Drawing.Size(50, 25);
 26             //        label.Text = ((char)i).ToString();
 27             //        label.TextAlign = ContentAlignment.MiddleCenter;
 28             //        label.Location = new Point(60 + (i * 90), 60 + (j * 60));
 29             //        label.Parent = panel1;
 30             //    }
 31             //}
 32             ////for (int i = 97; i < 123; i++)
 33             ////{
 34             ////    Console.WriteLine((char)i);
 35             ////}
 36         }
 37
 38         private void pictureBox1_Click(object sender, EventArgs e)
 39         {
 40             this.textBox1.Text = this.textBox1.Text + "a";
 41         }
 42
 43         private void pictureBox2_Click(object sender, EventArgs e)
 44         {
 45             this.textBox1.Text = this.textBox1.Text + "b";
 46         }
 47
 48         private void pictureBox3_Click(object sender, EventArgs e)
 49         {
 50             this.textBox1.Text = this.textBox1.Text + "c";
 51         }
 52
 53         private void pictureBox4_Click(object sender, EventArgs e)
 54         {
 55             this.textBox1.Text = this.textBox1.Text + "d";
 56         }
 57
 58         private void pictureBox5_Click(object sender, EventArgs e)
 59         {
 60             this.textBox1.Text = this.textBox1.Text + "e";
 61         }
 62
 63         private void pictureBox6_Click(object sender, EventArgs e)
 64         {
 65             this.textBox1.Text = this.textBox1.Text + "f";
 66         }
 67
 68         private void pictureBox7_Click(object sender, EventArgs e)
 69         {
 70             this.textBox1.Text = this.textBox1.Text + "g";
 71         }
 72
 73         private void pictureBox8_Click(object sender, EventArgs e)
 74         {
 75             this.textBox1.Text = this.textBox1.Text + "h";
 76         }
 77
 78         private void pictureBox9_Click(object sender, EventArgs e)
 79         {
 80             this.textBox1.Text = this.textBox1.Text + "i";
 81         }
 82
 83         private void pictureBox10_Click(object sender, EventArgs e)
 84         {
 85             this.textBox1.Text = this.textBox1.Text + "j";
 86         }
 87
 88         private void pictureBox11_Click(object sender, EventArgs e)
 89         {
 90             this.textBox1.Text = this.textBox1.Text + "k";
 91         }
 92
 93         private void pictureBox12_Click(object sender, EventArgs e)
 94         {
 95             this.textBox1.Text = this.textBox1.Text + "l";
 96         }
 97
 98         private void pictureBox13_Click(object sender, EventArgs e)
 99         {
100             this.textBox1.Text = this.textBox1.Text + "m";
101         }
102
103         private void pictureBox14_Click(object sender, EventArgs e)
104         {
105             this.textBox1.Text = this.textBox1.Text + "n";
106         }
107
108         private void pictureBox15_Click(object sender, EventArgs e)
109         {
110             this.textBox1.Text = this.textBox1.Text + "o";
111         }
112
113         private void pictureBox16_Click(object sender, EventArgs e)
114         {
115             this.textBox1.Text = this.textBox1.Text + "p";
116         }
117
118         private void pictureBox17_Click(object sender, EventArgs e)
119         {
120             this.textBox1.Text = this.textBox1.Text + "q";
121         }
122
123         private void pictureBox18_Click(object sender, EventArgs e)
124         {
125             this.textBox1.Text = this.textBox1.Text + "r";
126         }
127
128         private void pictureBox19_Click(object sender, EventArgs e)
129         {
130             this.textBox1.Text = this.textBox1.Text + "s";
131         }
132
133         private void pictureBox20_Click(object sender, EventArgs e)
134         {
135             this.textBox1.Text = this.textBox1.Text + "t";
136         }
137
138         private void pictureBox21_Click(object sender, EventArgs e)
139         {
140             this.textBox1.Text = this.textBox1.Text + "u";
141         }
142
143         private void pictureBox22_Click(object sender, EventArgs e)
144         {
145             this.textBox1.Text = this.textBox1.Text + "v";
146         }
147
148         private void pictureBox23_Click(object sender, EventArgs e)
149         {
150             this.textBox1.Text = this.textBox1.Text + "w";
151         }
152
153         private void pictureBox24_Click(object sender, EventArgs e)
154         {
155             this.textBox1.Text = this.textBox1.Text + "x";
156         }
157
158         private void pictureBox25_Click(object sender, EventArgs e)
159         {
160             this.textBox1.Text = this.textBox1.Text + "y";
161         }
162
163         private void pictureBox26_Click(object sender, EventArgs e)
164         {
165             this.textBox1.Text = this.textBox1.Text + "z";
166         }
167         private void button1_Click(object sender, EventArgs e)
168         {
169             string text = this.textBox1.Text;
170             int index = text.Length - 1;
171             if (index >= 0)
172             {
173                 textBox1.Text = text.Remove(index);
174             }
175         }
176         /// <summary>
177         /// 按拼音查找歌曲
178         /// </summary>
179         private void SeleSong()
180         {
181             string sql =string.Format("select song_id,song_name,song_url,singer_name from song_info,singer_info" +
182 " where song_info.singer_id=singer_info.singer_id and song_ab like '%{0}%'",this.textBox1.Text);
183             adapter = new SqlDataAdapter(sql, db.Conntion);
184             if (ds.Tables["song_info"]!=null)
185             {
186                 ds.Tables.Clear();
187             }
188             adapter.Fill(ds, "song_info");
189             this.dataGridView1.DataSource = ds.Tables["song_info"];
190         }
191         private void textBox1_TextChanged(object sender, EventArgs e)
192         {
193             if (this.textBox1.Text !=string.Empty)
194             {
195                 SeleSong();
196                 this.dataGridView1.AutoGenerateColumns = false;
197             }
198             else
199             {
200                 this.dataGridView1.DataSource = null;
201             }
202
203         }
204
205         private void FrmSpeall_FormClosing(object sender, FormClosingEventArgs e)
206         {
207             AnimateWindow(this.Handle, 300, FrmMain.AW_SLIDE + FrmMain.AW_VER_POSITIVE);
208         }
209
210         private void dataGridView1_DoubleClick(object sender, EventArgs e)
211         {
212             if (this.dataGridView1.SelectedRows[0] != null)
213             {
214                 Song song = new Song();
215                 song.SongName = this.dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
216                 song.SongPath = this.dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
217                 ListSong.AddSong(song);
218                 MessageBox.Show("添加成功,请在已点歌曲中查看!!!");
219                 this.Close();
220             }
221         }

第七部:金榜排行

 1    DataSet sb = new DataSet();
 2         SqlDataAdapter adapter = new SqlDataAdapter();
 3         public FrmOrderWordText()
 4         {
 5             InitializeComponent();
 6         }
 7
 8         private void FrmOrderWordText_Load(object sender, EventArgs e)
 9         {
10             DBHelper dd = new DBHelper();
11             string sql = string.Format("select song_name,singer_name,song_play_count from song_info,singer_info where song_info.singer_id=singer_info.singer_id order by song_play_count desc");
12             adapter.SelectCommand = new SqlCommand(sql, dd.Conection);
13             adapter.Fill(sb, "song_info");
14             DataTable table = sb.Tables["song_info"];
15
16             foreach (DataRow row in table.Rows)
17             {
18                 ListViewItem list = new ListViewItem(row[0].ToString());
19                 string [] item={row[1].ToString(),row[2].ToString()};
20                 list.SubItems.AddRange(item);
21                 listView1.Items.Add(list);
22             }
23         }
24
25         private void toolStripButton1_Click(object sender, EventArgs e)
26         {
27             this.Close();
28         }
29
30         private void toolStripButton5_Click(object sender, EventArgs e)
31         {
32             FrmSong song = new FrmSong();
33             song.Show();
34         }
35
36         private void toolStripButton6_Click(object sender, EventArgs e)
37         {
38             if (MessageBox.Show("确定要切歌吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
39             {
40                 PalyList.CutSong(-1);
41             }
42         }
43
44         private void toolStripButton7_Click(object sender, EventArgs e)
45         {
46             //PalyList.PlayAgain();
47
48             FormMain dd = new FormMain();
49             dd.palySong();
50         }
51
52         private void toolStripButton2_Click(object sender, EventArgs e)
53         {
54             FormMain dd = new FormMain();
55             dd.Show();
56             this.Close();
57         }

第八步:字数点歌

  1  DBHelper db = new DBHelper();
  2         SqlDataAdapter sda = new SqlDataAdapter();
  3         DataSet ds = new DataSet();
  4         public FrmOrderByWordCount()
  5         {
  6             InitializeComponent();
  7         }
  8         /// <summary>
  9         /// 打开主界面
 10         /// </summary>
 11         /// <param name="sender"></param>
 12         /// <param name="e"></param>
 13         private void toolStripButton2_Click(object sender, EventArgs e)
 14         {
 15             FormMain f = new FormMain();
 16             f.Show();
 17         }
 18         /// <summary>
 19         /// 重唱歌曲
 20         /// </summary>
 21         /// <param name="sender"></param>
 22         /// <param name="e"></param>
 23         private void toolStripButton7_Click(object sender, EventArgs e)
 24         {
 25
 26             FormMain dd = new FormMain();
 27             dd.palySong();
 28             //PalyList.PlayAgain();
 29         }
 30         /// <summary>
 31         /// 切歌
 32         /// </summary>
 33         /// <param name="sender"></param>
 34         /// <param name="e"></param>
 35         private void toolStripButton6_Click(object sender, EventArgs e)
 36         {
 37             if (MessageBox.Show("确定要切歌吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
 38             {
 39                 PalyList.CutSong(-1);
 40             }
 41         }
 42         /// <summary>
 43         /// 已点歌曲
 44         /// </summary>
 45         /// <param name="sender"></param>
 46         /// <param name="e"></param>
 47         private void toolStripButton5_Click(object sender, EventArgs e)
 48         {
 49             FrmSong frmList = new FrmSong();
 50             frmList.Show();
 51         }
 52         /// <summary>
 53         /// 返回
 54         /// </summary>
 55         /// <param name="sender"></param>
 56         /// <param name="e"></param>
 57         private void toolStripButton1_Click(object sender, EventArgs e)
 58         {
 59             this.Close();
 60
 61         }
 62
 63         public void FrmOrderByWordCount_Load(object sender, EventArgs e)
 64         {
 65             string sql2 = "select resource_path from resource_path where resource_id=2";
 66             SqlCommand cmd2 = new SqlCommand(sql2, db.Conection);
 67             db.OpenConnection();
 68             KtvUtil.SongPath = cmd2.ExecuteScalar().ToString();
 69             db.CloseConnection();
 70             for (int i = 1; i <= 4; i++)
 71             {
 72                 for (int j = 1; j<= 3; j++)
 73                 {
 74                     Label label = new Label();
 75                     label.Text = "" + i + "";
 76                     if (j==2)
 77                     {
 78                         label.Text = "" + (i + 4) + "";
 79                     }
 80                     else if (j==3)
 81                     {
 82                         label.Text = "" + (i + 8) + "";
 83                     }
 84                     label.Size = new Size(60, 30);
 85                     label.TextAlign = ContentAlignment.MiddleCenter;
 86                     label.Font = new System.Drawing.Font("华文彩云", 10);
 87                     label.BackColor = Color.Pink;
 88                     label.Click += label_Click;
 89                     label.Location = new Point(40 + 120 * j, 40 + 80 * i);
 90                     this.Controls.Add(label);
 91                 }
 92
 93             }
 94         }
 95         void label_Click(object sender, EventArgs e)
 96         {
 97             DBHelper dd = new DBHelper();
 98             DataSet ds = new DataSet();
 99             Label label = (Label)sender;
100             string sql = string.Format("select song_name,song_url,singer_name from song_info,singer_info" +
101                 " where song_info.singer_id=singer_info.singer_id and song_word_count={0}", Convert.ToInt32(label.Text));
102             SqlDataAdapter da = new SqlDataAdapter(sql, dd.Conection);
103             da.Fill(ds, "song_info");
104             dataGridView1.DataSource = ds.Tables["song_info"];
105             this.dataGridView1.Visible = true;
106
107
108         }
109
110         private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
111         {
112             string songname = this.dataGridView1.SelectedRows[0].Cells["clnSongName"].Value.ToString();
113             DBHelper db = new DBHelper();
114             db.OpenConnection();
115             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);
116             SqlCommand cmd = new SqlCommand(sql, db.Conection);
117
118             SqlDataReader read = cmd.ExecuteReader();
119             if (read.Read())
120             {
121                 SongList song = new SongList();
122                 song.SongName1 = read["song_name"].ToString();
123                 song.SongUl1 = read["song_url"].ToString();
124                 PalyList.AddSong(song);
125             }
126             read.Close();
127         }
128
129     }

第九步:类型点歌

  1  /// <summary>
  2         /// 切歌方法
  3         /// </summary>
  4         /// <param name="sender"></param>
  5         /// <param name="e"></param>
  6         private void toolStripButton6_Click(object sender, EventArgs e)
  7         {
  8             if (MessageBox.Show("确定要切歌吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
  9             {
 10                 PalyList.CutSong(-1);
 11             }
 12         }
 13
 14         private void FrmOrderBySongType_Load(object sender, EventArgs e)
 15         {
 16             LoadListView();
 17         }
 18
 19
 20         private void LoadListView()
 21         {
 22             DBHelper db = new DBHelper();
 23             string sql = "select songtype_id,songtype_name,songtype_URL from song_type";
 24             SqlCommand cmd = new SqlCommand(sql, db.Conection);
 25
 26             try
 27             {
 28                 db.OpenConnection();
 29                 SqlDataReader reader = cmd.ExecuteReader();
 30
 31                 if (reader.HasRows)
 32                 {
 33                     int index = 0;
 34                     while (reader.Read())
 35                     {
 36                         ListViewItem item = new ListViewItem();
 37                         item.Text = reader[1].ToString();
 38                         item.Tag = reader[0].ToString();
 39                         this.imageList1.Images.Add(Image.FromFile(@"E:\KTV前台管理\KTV前台管理\SingerTypeIamge\" + reader[2].ToString()));
 40                         item.ImageIndex = index;
 41                         this.listView1.Items.Add(item);
 42                         index++;
 43                     }
 44                 }
 45                 reader.Close();
 46             }
 47             catch (Exception ex)
 48             {
 49                 MessageBox.Show(ex.Message);
 50             }
 51             finally
 52             {
 53                 db.CloseConnection();
 54             }
 55         }
 56         /// <summary>
 57         /// 查找到该类型的歌手的歌曲
 58         /// </summary>
 59         private void DoubleClickSong()
 60         {
 61             if (this.listView1.SelectedItems[0] != null)
 62             {
 63                 string sql = string.Format("select song_id,song_name,song_url,singer_name from song_info,singer_info" +
 64                " where song_info.singer_id=singer_info.singer_id and song_info.songtype_id={0}", Convert.ToInt32(this.listView1.SelectedItems[0].Tag));
 65                 FrmSongList fs = new FrmSongList();
 66                 fs.Sql = sql;
 67                 fs.Show();
 68             }
 69         }
 70
 71         private void toolStripButton1_Click(object sender, EventArgs e)
 72         {
 73
 74             this.Close();
 75         }
 76
 77         private void toolStripButton5_Click(object sender, EventArgs e)
 78         {
 79             FrmSong song = new FrmSong();
 80             song.Show();
 81         }
 82
 83         private void listView1_Click(object sender, EventArgs e)
 84         {
 85             listView1.ToString();
 86         }
 87
 88         private void listView1_DoubleClick(object sender, EventArgs e)
 89         {
 90             DoubleClickSong();
 91         }
 92
 93         private void toolStripButton2_Click(object sender, EventArgs e)
 94         {
 95             FormMain dd = new FormMain();
 96             dd.Show();
 97             this.Close();
 98         }
 99
100         private void toolStripButton7_Click(object sender, EventArgs e)
101         {
102
103             FormMain dd = new FormMain();
104             dd.palySong();
105         }

2015-07-31

小学生之KTV项目文档(bdqn)的更多相关文章

  1. Atitit. 项目文档目录大纲 总集合  v2

    Atitit. 项目文档目录大纲 总集合  v2 -----Atitti.原有项目源码的架构,框架,配置与环境说明 v3 q511 -----Atitit.开发环境 与 工具 以及技术框架 以及 注意 ...

  2. 使用Mkdocs构建你的项目文档

    使用Mkdocs构建你的项目文档 环境搭建 安装必需软件 作者是在windows下安装的,如果是linux或mac用户,官网有更详细的安装说明. windows 10 x64 当然还有广大的windo ...

  3. MkDocs项目文档生成器

    简介 安装 我的配置 Chocolatey 简介 - Windows的包管理器 官方网址 安装 注意事项 Python 简介 安装 Pip 简介-Python的包管理器 升级 MkDocs的安装 使用 ...

  4. 通过VuePress管理项目文档(二)

    通过vue组件实现跟:Element相似的效果.需要在VuePress网站中将自己的项目中的Vue组件运行结果展示在页面中. 至于如何将组件在VuePress网站中展示请参考:https://segm ...

  5. 通过VuePress管理项目文档(一)

    VuePress 相关链接 完整的Vue组件代码以及完整的文档,仅适用于个人参考学习: 文档预览地址:预览链接 使用VuePress编辑文档的代码访问:组件文档 完整代码:组件代码 Vue组件开发 这 ...

  6. Atitit 项目文档规范化与必备文档与推荐文档列表

    Atitit 项目文档规范化与必备文档与推荐文档列表 ===========比较重要的必备文档========== 项目组名单通讯录( 包括项目组,客户沟通人等 需求文档 原型ui文档 开发计划表 项 ...

  7. Maven项目文档

    本教程学习如何一步到位地创建应用程序的文档.因此现在开始我们进入到  C:\MVN 创建 java 应用程序项目:consumerBanking. 进入到项目文件夹中执行以下命令 mvn 命令. C: ...

  8. 使用Docfx生成项目文档

    使用docfx.console生成本项目的文档 使用docfx.console生成其他项目的文档 直接使用docfx.exe生成项目文档 指定配置文档模板   文档地址:http://gitlab.l ...

  9. Java-Maven-Runoob:Maven 项目文档

    ylbtech-Java-Maven-Runoob:Maven 项目文档 1.返回顶部 1. Maven 项目文档 本章节我们主要学习如何创建 Maven 项目文档. 比如我们在 C:/MVN 目录下 ...

随机推荐

  1. Swift - 42 - 类的基本使用

    import Foundation /* 1.class表示类的关键字 2.class后面表示类名 3.类名后面的大括号内表示类的内部 */ /* 1.属性封装了set和get方法 2.方法里面封装了 ...

  2. android WIFI的一些属性

    package com.example.wifitest; import java.util.List; import android.content.Context; import android. ...

  3. RBAC角色权限设计思路

    1 设计思路 为了设计一套具有较强可扩展性的用户认证管理,需要建立用户.角色和权限等数据库表,并且建立之间的关系,具体实现如下. 1.1 用户 用户仅仅是纯粹的用户,用来记录用户相关信息,如用户名.密 ...

  4. .Net冷知识之动态查找类型时的程序集路径问题

    今天就说说.Net中通过反射取得某个类型时,我们怎么知道这个类型在硬盘上的哪个角落?比如说,假如我们需要要求服务端动态载入某个数据源,那服务端怎么知道数据源在哪? 网上大部分的教程都写着,可以使用As ...

  5. DOS头 IMAGE_DOS_HEADER

    IMAGE_DOS_HEADER STRUCT { +0h WORD e_magic // Magic DOS signature MZ(4Dh 5Ah) DOS可执行文件标记 +2h WORD e_ ...

  6. iOS 数据库操作(使用FMDB)

    iOS 数据库操作(使用FMDB)   iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.Plausibl ...

  7. HDOJ 1418 抱歉(欧拉公式)

    Problem Description 非常抱歉,本来兴冲冲地搞一场练习赛,由于我准备不足,出现很多数据的错误,现在这里换一个简单的题目: 前几天在网上查找ACM资料的时候,看到一个中学的奥数题目,就 ...

  8. 解耦——Hybrid H5跨平台性思考

    跨平台,是HTML5最重要的能力之一.而Hybrid H5因强依赖于具体App,往往不具有跨平台性.这时,将强依赖关系解耦,即可恢复HTML5的跨平台能力.近期我负责手Q红包打赏项目的前端开发,因项目 ...

  9. HDU-3787(字符串模拟)

    Problem Description 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开.现在请计算A+B的结果,并以正常形式输出.   Input 输入包含 ...

  10. 【KMP】Number Sequence

    KMP算法 KMP的基处题目,数字数组的KMP算法应用. 主要是next[]数组的构造,next[]存储的是字符的当前字串,与子串前字符匹配的字符数. 移动位数 = 已匹配的字符数 - 对应的部分匹配 ...